srsRAN Docs
Loading...
Searching...
No Matches
f1ap_ies.h
1/*
2 *
3 * Copyright 2021-2024 Software Radio Systems Limited
4 *
5 * This file is part of srsRAN.
6 *
7 * srsRAN is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as
9 * published by the Free Software Foundation, either version 3 of
10 * the License, or (at your option) any later version.
11 *
12 * srsRAN is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
16 *
17 * A copy of the GNU Affero General Public License can be found in
18 * the LICENSE file in the top-level directory of this distribution
19 * and at http://www.gnu.org/licenses/.
20 *
21 */
22
23/*******************************************************************************
24 *
25 * 3GPP TS ASN1 F1AP v17.4.1 (2023-04)
26 *
27 ******************************************************************************/
28
29#pragma once
30
31#include "srsran/asn1/asn1_ap_utils.h"
32
33namespace asn1 {
34namespace f1ap {
35
36/*******************************************************************************
37 * Struct Definitions
38 ******************************************************************************/
39
40// LocationUncertainty-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
41using location_uncertainty_ext_ies_o = protocol_ext_empty_o;
42
43using location_uncertainty_ext_ies_container = protocol_ext_container_empty_l;
44
45// LocationUncertainty ::= SEQUENCE
47 bool ie_exts_present = false;
48 uint16_t horizontal_uncertainty = 0;
49 uint8_t horizontal_confidence = 0;
50 uint16_t vertical_uncertainty = 0;
51 uint8_t vertical_confidence = 0;
53
54 // sequence methods
55 SRSASN_CODE pack(bit_ref& bref) const;
56 SRSASN_CODE unpack(cbit_ref& bref);
57 void to_json(json_writer& j) const;
58};
59
60// RelativeCartesianLocation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
62
63// RelativeGeodeticLocation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
65
66// ARPLocationType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
68
70
71// RelativeCartesianLocation ::= SEQUENCE
74 enum options { mm, cm, dm, /*...*/ nulltype } value;
75
76 const char* to_string() const;
77 };
79
80 // member variables
81 bool ie_exts_present = false;
82 xy_zunit_e_ xy_zunit;
83 int32_t xvalue = -65536;
84 int32_t yvalue = -65536;
85 int32_t zvalue = -32768;
86 location_uncertainty_s location_uncertainty;
88
89 // sequence methods
90 SRSASN_CODE pack(bit_ref& bref) const;
91 SRSASN_CODE unpack(cbit_ref& bref);
92 void to_json(json_writer& j) const;
93};
94
96
97// RelativeGeodeticLocation ::= SEQUENCE
100 enum options { zerodot03, zerodot3, three, /*...*/ nulltype } value;
101
102 const char* to_string() const;
103 };
106 enum options { mm, cm, m, /*...*/ nulltype } value;
107
108 const char* to_string() const;
109 };
111
112 // member variables
113 bool ie_exts_present = false;
114 milli_arc_second_units_e_ milli_arc_second_units;
115 height_units_e_ height_units;
116 int16_t delta_latitude = -1024;
117 int16_t delta_longitude = -1024;
118 int16_t delta_height = -1024;
119 location_uncertainty_s location_uncertainty;
121
122 // sequence methods
123 SRSASN_CODE pack(bit_ref& bref) const;
124 SRSASN_CODE unpack(cbit_ref& bref);
125 void to_json(json_writer& j) const;
126};
127
128// ARPLocationInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
130
131// ARPLocationType ::= CHOICE
133 struct types_opts {
134 enum options { arp_position_relative_geodetic, arp_position_relative_cartesian, choice_ext, nulltype } value;
135
136 const char* to_string() const;
137 };
139
140 // choice methods
141 arp_location_type_c() = default;
143 arp_location_type_c& operator=(const arp_location_type_c& other);
144 ~arp_location_type_c() { destroy_(); }
145 void set(types::options e = types::nulltype);
146 types type() const { return type_; }
147 SRSASN_CODE pack(bit_ref& bref) const;
148 SRSASN_CODE unpack(cbit_ref& bref);
149 void to_json(json_writer& j) const;
150 // getters
151 relative_geodetic_location_s& arp_position_relative_geodetic()
152 {
153 assert_choice_type(types::arp_position_relative_geodetic, type_, "ARPLocationType");
154 return c.get<relative_geodetic_location_s>();
155 }
156 relative_cartesian_location_s& arp_position_relative_cartesian()
157 {
158 assert_choice_type(types::arp_position_relative_cartesian, type_, "ARPLocationType");
159 return c.get<relative_cartesian_location_s>();
160 }
161 protocol_ie_single_container_s<arp_location_type_ext_ies_o>& choice_ext()
162 {
163 assert_choice_type(types::choice_ext, type_, "ARPLocationType");
164 return c.get<protocol_ie_single_container_s<arp_location_type_ext_ies_o>>();
165 }
166 const relative_geodetic_location_s& arp_position_relative_geodetic() const
167 {
168 assert_choice_type(types::arp_position_relative_geodetic, type_, "ARPLocationType");
169 return c.get<relative_geodetic_location_s>();
170 }
171 const relative_cartesian_location_s& arp_position_relative_cartesian() const
172 {
173 assert_choice_type(types::arp_position_relative_cartesian, type_, "ARPLocationType");
174 return c.get<relative_cartesian_location_s>();
175 }
176 const protocol_ie_single_container_s<arp_location_type_ext_ies_o>& choice_ext() const
177 {
178 assert_choice_type(types::choice_ext, type_, "ARPLocationType");
179 return c.get<protocol_ie_single_container_s<arp_location_type_ext_ies_o>>();
180 }
181 relative_geodetic_location_s& set_arp_position_relative_geodetic();
182 relative_cartesian_location_s& set_arp_position_relative_cartesian();
183 protocol_ie_single_container_s<arp_location_type_ext_ies_o>& set_choice_ext();
184
185private:
186 types type_;
187 choice_buffer_t<protocol_ie_single_container_s<arp_location_type_ext_ies_o>,
188 relative_cartesian_location_s,
189 relative_geodetic_location_s>
190 c;
191
192 void destroy_();
193};
194
195using arp_location_info_ext_ies_container = protocol_ext_container_empty_l;
196
197// ARPLocationInformation-Item ::= SEQUENCE
199 bool ext = false;
200 bool ie_exts_present = false;
201 uint8_t arp_id = 1;
202 arp_location_type_c arp_location_type;
204 // ...
205
206 // sequence methods
207 SRSASN_CODE pack(bit_ref& bref) const;
208 SRSASN_CODE unpack(cbit_ref& bref);
209 void to_json(json_writer& j) const;
210};
211
212// ARPLocationInformation ::= SEQUENCE (SIZE (1..16)) OF ARPLocationInformation-Item
214
215// AbortTransmission-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
217
218// AbortTransmission ::= CHOICE
220 struct types_opts {
221 enum options { srs_res_set_id, release_all, choice_ext, nulltype } value;
222
223 const char* to_string() const;
224 };
226
227 // choice methods
228 abort_tx_c() = default;
229 abort_tx_c(const abort_tx_c& other);
230 abort_tx_c& operator=(const abort_tx_c& other);
231 ~abort_tx_c() { destroy_(); }
232 void set(types::options e = types::nulltype);
233 types type() const { return type_; }
234 SRSASN_CODE pack(bit_ref& bref) const;
235 SRSASN_CODE unpack(cbit_ref& bref);
236 void to_json(json_writer& j) const;
237 // getters
238 uint8_t& srs_res_set_id()
239 {
240 assert_choice_type(types::srs_res_set_id, type_, "AbortTransmission");
241 return c.get<uint8_t>();
242 }
243 protocol_ie_single_container_s<abort_tx_ext_ies_o>& choice_ext()
244 {
245 assert_choice_type(types::choice_ext, type_, "AbortTransmission");
246 return c.get<protocol_ie_single_container_s<abort_tx_ext_ies_o>>();
247 }
248 const uint8_t& srs_res_set_id() const
249 {
250 assert_choice_type(types::srs_res_set_id, type_, "AbortTransmission");
251 return c.get<uint8_t>();
252 }
253 const protocol_ie_single_container_s<abort_tx_ext_ies_o>& choice_ext() const
254 {
255 assert_choice_type(types::choice_ext, type_, "AbortTransmission");
256 return c.get<protocol_ie_single_container_s<abort_tx_ext_ies_o>>();
257 }
258 uint8_t& set_srs_res_set_id();
259 void set_release_all();
260 protocol_ie_single_container_s<abort_tx_ext_ies_o>& set_choice_ext();
261
262private:
263 types type_;
264 choice_buffer_t<protocol_ie_single_container_s<abort_tx_ext_ies_o>> c;
265
266 void destroy_();
267};
268
269// RACHReportInformationItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
270using rach_report_info_item_ext_ies_o = protocol_ext_empty_o;
271
272// RLFReportInformationItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
273using rlf_report_info_item_ext_ies_o = protocol_ext_empty_o;
274
275// SuccessfulHOReportInformation-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
276using successful_ho_report_info_item_ext_ies_o = protocol_ext_empty_o;
277
278using rach_report_info_item_ext_ies_container = protocol_ext_container_empty_l;
279
280// RACHReportInformationItem ::= SEQUENCE
282 bool ext = false;
283 bool ue_assitant_id_present = false;
284 bool ie_exts_present = false;
285 unbounded_octstring<true> rach_report_container;
286 uint64_t ue_assitant_id = 0;
288 // ...
289
290 // sequence methods
291 SRSASN_CODE pack(bit_ref& bref) const;
292 SRSASN_CODE unpack(cbit_ref& bref);
293 void to_json(json_writer& j) const;
294};
295
297
298// RLFReportInformationItem ::= SEQUENCE
300 bool ext = false;
301 bool ue_assitant_id_present = false;
302 bool ie_exts_present = false;
303 unbounded_octstring<true> nr_ue_rlf_report_container;
304 uint64_t ue_assitant_id = 0;
306 // ...
307
308 // sequence methods
309 SRSASN_CODE pack(bit_ref& bref) const;
310 SRSASN_CODE unpack(cbit_ref& bref);
311 void to_json(json_writer& j) const;
312};
313
315
316// SuccessfulHOReportInformation-Item ::= SEQUENCE
318 bool ie_exts_present = false;
319 unbounded_octstring<true> successful_ho_report_container;
321
322 // sequence methods
323 SRSASN_CODE pack(bit_ref& bref) const;
324 SRSASN_CODE unpack(cbit_ref& bref);
325 void to_json(json_writer& j) const;
326};
327
328// RACHReportInformationList ::= SEQUENCE (SIZE (1..64)) OF RACHReportInformationItem
330
331// RLFReportInformationList ::= SEQUENCE (SIZE (1..64)) OF RLFReportInformationItem
333
334// SuccessfulHOReportInformationList ::= SEQUENCE (SIZE (1..64)) OF SuccessfulHOReportInformation-Item
336
337// AccessPointPosition-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
339
341
342// AccessPointPosition ::= SEQUENCE
345 enum options { north, south, nulltype } value;
346
347 const char* to_string() const;
348 };
351 enum options { height, depth, nulltype } value;
352 typedef uint8_t number_type;
353
354 const char* to_string() const;
355 uint8_t to_number() const;
356 };
358
359 // member variables
360 bool ie_exts_present = false;
361 latitude_sign_e_ latitude_sign;
362 uint32_t latitude = 0;
363 int32_t longitude = -8388608;
364 direction_of_altitude_e_ direction_of_altitude;
365 uint16_t altitude = 0;
366 uint8_t uncertainty_semi_major = 0;
367 uint8_t uncertainty_semi_minor = 0;
368 uint8_t orientation_of_major_axis = 0;
369 uint8_t uncertainty_altitude = 0;
370 uint8_t confidence = 0;
372
373 // sequence methods
374 SRSASN_CODE pack(bit_ref& bref) const;
375 SRSASN_CODE unpack(cbit_ref& bref);
376 void to_json(json_writer& j) const;
377};
378
379// NRCGI-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
381
383
384// NRCGI ::= SEQUENCE
385struct nr_cgi_s {
386 bool ext = false;
387 bool ie_exts_present = false;
391 // ...
392
393 // sequence methods
394 SRSASN_CODE pack(bit_ref& bref) const;
395 SRSASN_CODE unpack(cbit_ref& bref);
396 void to_json(json_writer& j) const;
397};
398
399// Frequency-Domain-HSNA-Slot-Configuration-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
401
402// HSNADownlink ::= ENUMERATED
404 enum options { hard, soft, notavailable, nulltype } value;
405
406 const char* to_string() const;
407};
409
410// HSNAFlexible ::= ENUMERATED
412 enum options { hard, soft, notavailable, nulltype } value;
413
414 const char* to_string() const;
415};
417
418// HSNAUplink ::= ENUMERATED
420 enum options { hard, soft, notavailable, nulltype } value;
421
422 const char* to_string() const;
423};
425
426// NA-Resource-Configuration-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
428
429// NADownlink ::= ENUMERATED
431 enum options { true_value, false_value, /*...*/ nulltype } value;
432
433 const char* to_string() const;
434};
436
437// NAFlexible ::= ENUMERATED
439 enum options { true_value, false_value, /*...*/ nulltype } value;
440
441 const char* to_string() const;
442};
444
445// NAUplink ::= ENUMERATED
447 enum options { true_value, false_value, /*...*/ nulltype } value;
448
449 const char* to_string() const;
450};
452
453// NRCarrierItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
455
456// NRSCS ::= ENUMERATED
458 enum options { scs15, scs30, scs60, scs120, /*...*/ scs480, scs960, nulltype } value;
459 typedef uint16_t number_type;
460
461 const char* to_string() const;
462 uint16_t to_number() const;
463};
465
467
468// Frequency-Domain-HSNA-Slot-Configuration-Item ::= SEQUENCE
470 bool slot_idx_present = false;
471 bool hsn_a_dl_present = false;
472 bool hsn_a_ul_present = false;
473 bool hsn_a_flex_present = false;
474 bool ie_exts_present = false;
475 uint16_t slot_idx = 0;
476 h_sn_a_dl_e hsn_a_dl;
477 h_sn_a_ul_e hsn_a_ul;
478 h_sn_a_flex_e hsn_a_flex;
480
481 // sequence methods
482 SRSASN_CODE pack(bit_ref& bref) const;
483 SRSASN_CODE unpack(cbit_ref& bref);
484 void to_json(json_writer& j) const;
485};
486
488
489// NA-Resource-Configuration-Item ::= SEQUENCE
491 bool na_dl_present = false;
492 bool na_ul_present = false;
493 bool na_flex_present = false;
494 bool ie_exts_present = false;
495 na_dl_e na_dl;
496 na_ul_e na_ul;
497 na_flex_e na_flex;
499
500 // sequence methods
501 SRSASN_CODE pack(bit_ref& bref) const;
502 SRSASN_CODE unpack(cbit_ref& bref);
503 void to_json(json_writer& j) const;
504};
505
507
508// NRCarrierItem ::= SEQUENCE
510 bool ext = false;
511 bool ie_ext_present = false;
512 nr_scs_e carrier_scs;
513 uint16_t offset_to_carrier = 0;
514 uint16_t carrier_bw = 0;
516 // ...
517
518 // sequence methods
519 SRSASN_CODE pack(bit_ref& bref) const;
520 SRSASN_CODE unpack(cbit_ref& bref);
521 void to_json(json_writer& j) const;
522};
523
524// Child-IAB-Nodes-NA-Resource-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
526
527// ExplicitFormat-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
529
530// Frequency-Domain-HSNA-Configuration-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
532
533// Frequency-Domain-HSNA-Slot-Configuration-List ::= SEQUENCE (SIZE (1..5120)) OF
534// Frequency-Domain-HSNA-Slot-Configuration-Item
536
537// FrequencyShift7p5khz ::= ENUMERATED
539 enum options { false_value, true_value, /*...*/ nulltype } value;
540
541 const char* to_string() const;
542};
544
545// ImplicitFormat-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
547
548// NA-Resource-Configuration-List ::= SEQUENCE (SIZE (1..5120)) OF NA-Resource-Configuration-Item
550
551// NRCarrierList ::= SEQUENCE (SIZE (1..5)) OF NRCarrierItem
553
554// NRNRB ::= ENUMERATED
556 enum options {
557 nrb11,
558 nrb18,
559 nrb24,
560 nrb25,
561 nrb31,
562 nrb32,
563 nrb38,
564 nrb51,
565 nrb52,
566 nrb65,
567 nrb66,
568 nrb78,
569 nrb79,
570 nrb93,
571 nrb106,
572 nrb107,
573 nrb121,
574 nrb132,
575 nrb133,
576 nrb135,
577 nrb160,
578 nrb162,
579 nrb189,
580 nrb216,
581 nrb217,
582 nrb245,
583 nrb264,
584 nrb270,
585 nrb273,
586 // ...
587 nrb33,
588 nrb62,
589 nrb124,
590 nrb148,
591 nrb248,
592 nrb44,
593 nrb58,
594 nrb92,
595 nrb119,
596 nrb188,
597 nrb242,
598 nulltype
599 } value;
600 typedef uint16_t number_type;
601
602 const char* to_string() const;
603 uint16_t to_number() const;
604};
606
607// Parent-IAB-Nodes-NA-Resource-Configuration-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
609
610// Permutation ::= ENUMERATED
612 enum options { dfu, ufd, /*...*/ nulltype } value;
613
614 const char* to_string() const;
615};
617
618// SupportedSULFreqBandItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
620
621// Transmission-Bandwidth-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
623
625
626// Child-IAB-Nodes-NA-Resource-List-Item ::= SEQUENCE
628 bool ie_exts_present = false;
629 uint64_t gnb_cu_ue_f1ap_id = 0;
630 uint64_t gnb_du_ue_f1ap_id = 0;
631 na_res_cfg_list_l na_res_cfg_list;
633
634 // sequence methods
635 SRSASN_CODE pack(bit_ref& bref) const;
636 SRSASN_CODE unpack(cbit_ref& bref);
637 void to_json(json_writer& j) const;
638};
639
640// DUF-Slot-Config-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
642
644
645// ExplicitFormat ::= SEQUENCE
647 bool noof_dl_symbols_present = false;
648 bool noof_ul_symbols_present = false;
649 bool ie_exts_present = false;
650 permutation_e permutation;
651 uint8_t noof_dl_symbols = 0;
652 uint8_t noof_ul_symbols = 0;
654
655 // sequence methods
656 SRSASN_CODE pack(bit_ref& bref) const;
657 SRSASN_CODE unpack(cbit_ref& bref);
658 void to_json(json_writer& j) const;
659};
660
661// FreqBandNrItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
663
665
666// Frequency-Domain-HSNA-Configuration-Item ::= SEQUENCE
668 bool ie_exts_present = false;
669 uint8_t rb_set_idx = 0;
670 freq_domain_h_sn_a_slot_cfg_list_l freq_domain_h_sn_a_slot_cfg_list;
672
673 // sequence methods
674 SRSASN_CODE pack(bit_ref& bref) const;
675 SRSASN_CODE unpack(cbit_ref& bref);
676 void to_json(json_writer& j) const;
677};
678
679// HSNASlotConfigItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
681
683
684// ImplicitFormat ::= SEQUENCE
686 bool ie_exts_present = false;
687 uint8_t du_f_slotformat_idx = 0;
689
690 // sequence methods
691 SRSASN_CODE pack(bit_ref& bref) const;
692 SRSASN_CODE unpack(cbit_ref& bref);
693 void to_json(json_writer& j) const;
694};
695
697
698// Parent-IAB-Nodes-NA-Resource-Configuration-Item ::= SEQUENCE
700 bool na_dl_present = false;
701 bool na_ul_present = false;
702 bool na_flex_present = false;
703 bool ie_exts_present = false;
704 na_dl_e na_dl;
705 na_ul_e na_ul;
706 na_flex_e na_flex;
708
709 // sequence methods
710 SRSASN_CODE pack(bit_ref& bref) const;
711 SRSASN_CODE unpack(cbit_ref& bref);
712 void to_json(json_writer& j) const;
713};
714
715// RBSetConfiguration-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
717
718// RBSetSize ::= ENUMERATED
720 enum options { rb2, rb4, rb8, rb16, rb32, rb64, nulltype } value;
721 typedef uint8_t number_type;
722
723 const char* to_string() const;
724 uint8_t to_number() const;
725};
727
728// SUL-InformationExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
730 // Extension ::= OPEN TYPE
731 struct ext_c {
732 struct types_opts {
733 enum options { carrier_list, freq_shift7p5khz, nulltype } value;
734 typedef uint8_t number_type;
735
736 const char* to_string() const;
737 uint8_t to_number() const;
738 };
740
741 // choice methods
742 ext_c() = default;
743 void set(types::options e = types::nulltype);
744 types type() const { return type_; }
745 SRSASN_CODE pack(bit_ref& bref) const;
746 SRSASN_CODE unpack(cbit_ref& bref);
747 void to_json(json_writer& j) const;
748 // getters
749 nr_carrier_list_l& carrier_list();
750 freq_shift7p5khz_e& freq_shift7p5khz();
751 const nr_carrier_list_l& carrier_list() const;
752 const freq_shift7p5khz_e& freq_shift7p5khz() const;
753
754 private:
755 types type_;
757 };
758
759 // members lookup methods
760 static uint32_t idx_to_id(uint32_t idx);
761 static bool is_id_valid(const uint32_t& id);
762 static crit_e get_crit(const uint32_t& id);
763 static ext_c get_ext(const uint32_t& id);
764 static presence_e get_presence(const uint32_t& id);
765};
766
767// SubcarrierSpacing ::= ENUMERATED
769 enum options { khz15, khz30, khz60, khz120, khz240, spare3, spare2, spare1, /*...*/ nulltype } value;
770 typedef uint8_t number_type;
771
772 const char* to_string() const;
773 uint8_t to_number() const;
774};
776
778
779// SupportedSULFreqBandItem ::= SEQUENCE
781 bool ext = false;
782 bool ie_exts_present = false;
783 uint16_t freq_band_ind_nr = 1;
785 // ...
786
787 // sequence methods
788 SRSASN_CODE pack(bit_ref& bref) const;
789 SRSASN_CODE unpack(cbit_ref& bref);
790 void to_json(json_writer& j) const;
791};
792
794
795// Transmission-Bandwidth ::= SEQUENCE
796struct tx_bw_s {
797 bool ext = false;
798 bool ie_exts_present = false;
799 nr_scs_e nr_scs;
800 nr_nrb_e nr_nrb;
802 // ...
803
804 // sequence methods
805 SRSASN_CODE pack(bit_ref& bref) const;
806 SRSASN_CODE unpack(cbit_ref& bref);
807 void to_json(json_writer& j) const;
808};
809
810// Child-IAB-Nodes-NA-Resource-List ::= SEQUENCE (SIZE (1..1024)) OF Child-IAB-Nodes-NA-Resource-List-Item
812
813// DUF-Slot-Config-Item ::= CHOICE
815 struct types_opts {
816 enum options { explicit_format, implicit_format, choice_ext, nulltype } value;
817
818 const char* to_string() const;
819 };
821
822 // choice methods
823 du_f_slot_cfg_item_c() = default;
825 du_f_slot_cfg_item_c& operator=(const du_f_slot_cfg_item_c& other);
826 ~du_f_slot_cfg_item_c() { destroy_(); }
827 void set(types::options e = types::nulltype);
828 types type() const { return type_; }
829 SRSASN_CODE pack(bit_ref& bref) const;
830 SRSASN_CODE unpack(cbit_ref& bref);
831 void to_json(json_writer& j) const;
832 // getters
833 explicit_format_s& explicit_format()
834 {
835 assert_choice_type(types::explicit_format, type_, "DUF-Slot-Config-Item");
836 return c.get<explicit_format_s>();
837 }
838 implicit_format_s& implicit_format()
839 {
840 assert_choice_type(types::implicit_format, type_, "DUF-Slot-Config-Item");
841 return c.get<implicit_format_s>();
842 }
843 protocol_ie_single_container_s<du_f_slot_cfg_item_ext_ies_o>& choice_ext()
844 {
845 assert_choice_type(types::choice_ext, type_, "DUF-Slot-Config-Item");
846 return c.get<protocol_ie_single_container_s<du_f_slot_cfg_item_ext_ies_o>>();
847 }
848 const explicit_format_s& explicit_format() const
849 {
850 assert_choice_type(types::explicit_format, type_, "DUF-Slot-Config-Item");
851 return c.get<explicit_format_s>();
852 }
853 const implicit_format_s& implicit_format() const
854 {
855 assert_choice_type(types::implicit_format, type_, "DUF-Slot-Config-Item");
856 return c.get<implicit_format_s>();
857 }
858 const protocol_ie_single_container_s<du_f_slot_cfg_item_ext_ies_o>& choice_ext() const
859 {
860 assert_choice_type(types::choice_ext, type_, "DUF-Slot-Config-Item");
861 return c.get<protocol_ie_single_container_s<du_f_slot_cfg_item_ext_ies_o>>();
862 }
863 explicit_format_s& set_explicit_format();
864 implicit_format_s& set_implicit_format();
865 protocol_ie_single_container_s<du_f_slot_cfg_item_ext_ies_o>& set_choice_ext();
866
867private:
868 types type_;
869 choice_buffer_t<explicit_format_s, implicit_format_s, protocol_ie_single_container_s<du_f_slot_cfg_item_ext_ies_o>> c;
870
871 void destroy_();
872};
873
874using freq_band_nr_item_ext_ies_container = protocol_ext_container_empty_l;
875
876// FreqBandNrItem ::= SEQUENCE
879
880 // member variables
881 bool ext = false;
882 bool ie_exts_present = false;
883 uint16_t freq_band_ind_nr = 1;
884 supported_sul_band_list_l_ supported_sul_band_list;
886 // ...
887
888 // sequence methods
889 SRSASN_CODE pack(bit_ref& bref) const;
890 SRSASN_CODE unpack(cbit_ref& bref);
891 void to_json(json_writer& j) const;
892};
893
894// Frequency-Domain-HSNA-Configuration-List ::= SEQUENCE (SIZE (1..8)) OF Frequency-Domain-HSNA-Configuration-Item
896
898
899// HSNASlotConfigItem ::= SEQUENCE
901 bool hsn_a_dl_present = false;
902 bool hsn_a_ul_present = false;
903 bool hsn_a_flex_present = false;
904 bool ie_exts_present = false;
905 h_sn_a_dl_e hsn_a_dl;
906 h_sn_a_ul_e hsn_a_ul;
907 h_sn_a_flex_e hsn_a_flex;
909
910 // sequence methods
911 SRSASN_CODE pack(bit_ref& bref) const;
912 SRSASN_CODE unpack(cbit_ref& bref);
913 void to_json(json_writer& j) const;
914};
915
916// NRFreqInfoExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
918 // Extension ::= OPEN TYPE
919 struct ext_c {
920 struct types_opts {
921 enum options { freq_shift7p5khz, nulltype } value;
922 typedef uint8_t number_type;
923
924 const char* to_string() const;
925 uint8_t to_number() const;
926 };
928
929 // choice methods
930 types type() const { return types::freq_shift7p5khz; }
931 SRSASN_CODE pack(bit_ref& bref) const;
932 SRSASN_CODE unpack(cbit_ref& bref);
933 void to_json(json_writer& j) const;
934 // getters
935 freq_shift7p5khz_e& freq_shift7p5khz() { return c; }
936 const freq_shift7p5khz_e& freq_shift7p5khz() const { return c; }
937
938 private:
939 freq_shift7p5khz_e c;
940 };
941
942 // members lookup methods
943 static uint32_t idx_to_id(uint32_t idx);
944 static bool is_id_valid(const uint32_t& id);
945 static crit_e get_crit(const uint32_t& id);
946 static ext_c get_ext(const uint32_t& id);
947 static presence_e get_presence(const uint32_t& id);
948};
949
950// Parent-IAB-Nodes-NA-Resource-Configuration-List ::= SEQUENCE (SIZE (1..5120)) OF
951// Parent-IAB-Nodes-NA-Resource-Configuration-Item
952using parent_iab_nodes_na_res_cfg_list_l = dyn_array<parent_iab_nodes_na_res_cfg_item_s>;
953
954using rb_set_cfg_ext_ies_container = protocol_ext_container_empty_l;
955
956// RBSetConfiguration ::= SEQUENCE
958 bool ie_exts_present = false;
959 subcarrier_spacing_e subcarrier_spacing;
960 rb_set_size_e rb_set_size;
961 uint8_t num_r_bsets = 1;
963
964 // sequence methods
965 SRSASN_CODE pack(bit_ref& bref) const;
966 SRSASN_CODE unpack(cbit_ref& bref);
967 void to_json(json_writer& j) const;
968};
969
971 bool carrier_list_present = false;
972 bool freq_shift7p5khz_present = false;
973 nr_carrier_list_l carrier_list;
974 freq_shift7p5khz_e freq_shift7p5khz;
975
976 // sequence methods
977 SRSASN_CODE pack(bit_ref& bref) const;
978 SRSASN_CODE unpack(cbit_ref& bref);
979 void to_json(json_writer& j) const;
980};
981
982// SUL-Information ::= SEQUENCE
984 bool ext = false;
985 bool ie_exts_present = false;
986 uint32_t sul_nr_arfcn = 0;
987 tx_bw_s sul_tx_bw;
989 // ...
990
991 // sequence methods
992 SRSASN_CODE pack(bit_ref& bref) const;
993 SRSASN_CODE unpack(cbit_ref& bref);
994 void to_json(json_writer& j) const;
995};
996
997// DUF-Slot-Config-List ::= SEQUENCE (SIZE (1..320)) OF DUF-Slot-Config-Item
999
1000// DUFTransmissionPeriodicity ::= ENUMERATED
1002 enum options { ms0p5, ms0p625, ms1, ms1p25, ms2, ms2p5, ms5, ms10, /*...*/ nulltype } value;
1003
1004 const char* to_string() const;
1005};
1007
1008// GNB-DU-Cell-Resource-Configuration-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1010 // Extension ::= OPEN TYPE
1011 struct ext_c {
1012 struct types_opts {
1013 enum options {
1014 rb_set_cfg,
1015 freq_domain_h_sn_a_cfg_list,
1016 child_iab_nodes_na_res_list,
1017 parent_iab_nodes_na_res_cfg_list,
1018 nulltype
1019 } value;
1020
1021 const char* to_string() const;
1022 };
1024
1025 // choice methods
1026 ext_c() = default;
1027 void set(types::options e = types::nulltype);
1028 types type() const { return type_; }
1029 SRSASN_CODE pack(bit_ref& bref) const;
1030 SRSASN_CODE unpack(cbit_ref& bref);
1031 void to_json(json_writer& j) const;
1032 // getters
1033 rb_set_cfg_s& rb_set_cfg();
1034 freq_domain_h_sn_a_cfg_list_l& freq_domain_h_sn_a_cfg_list();
1035 child_iab_nodes_na_res_list_l& child_iab_nodes_na_res_list();
1036 parent_iab_nodes_na_res_cfg_list_l& parent_iab_nodes_na_res_cfg_list();
1037 const rb_set_cfg_s& rb_set_cfg() const;
1038 const freq_domain_h_sn_a_cfg_list_l& freq_domain_h_sn_a_cfg_list() const;
1039 const child_iab_nodes_na_res_list_l& child_iab_nodes_na_res_list() const;
1040 const parent_iab_nodes_na_res_cfg_list_l& parent_iab_nodes_na_res_cfg_list() const;
1041
1042 private:
1043 types type_;
1045 };
1046
1047 // members lookup methods
1048 static uint32_t idx_to_id(uint32_t idx);
1049 static bool is_id_valid(const uint32_t& id);
1050 static crit_e get_crit(const uint32_t& id);
1051 static ext_c get_ext(const uint32_t& id);
1052 static presence_e get_presence(const uint32_t& id);
1053};
1054
1055// HSNASlotConfigList ::= SEQUENCE (SIZE (1..5120)) OF HSNASlotConfigItem
1056using hs_nas_lot_cfg_list_l = dyn_array<hs_nas_lot_cfg_item_s>;
1057
1058// HSNATransmissionPeriodicity ::= ENUMERATED
1060 enum options { ms0p5, ms0p625, ms1, ms1p25, ms2, ms2p5, ms5, ms10, ms20, ms40, ms80, ms160, /*...*/ nulltype } value;
1061
1062 const char* to_string() const;
1063};
1065
1066// NRFreqInfo ::= SEQUENCE
1069
1070 // member variables
1071 bool ext = false;
1072 bool sul_info_present = false;
1073 uint32_t nr_arfcn = 0;
1074 sul_info_s sul_info;
1075 freq_band_list_nr_l_ freq_band_list_nr;
1077 // ...
1078
1079 // sequence methods
1080 SRSASN_CODE pack(bit_ref& bref) const;
1081 SRSASN_CODE unpack(cbit_ref& bref);
1082 void to_json(json_writer& j) const;
1083};
1084
1086 bool rb_set_cfg_present = false;
1087 bool freq_domain_h_sn_a_cfg_list_present = false;
1088 bool child_iab_nodes_na_res_list_present = false;
1089 bool parent_iab_nodes_na_res_cfg_list_present = false;
1090 rb_set_cfg_s rb_set_cfg;
1091 freq_domain_h_sn_a_cfg_list_l freq_domain_h_sn_a_cfg_list;
1092 child_iab_nodes_na_res_list_l child_iab_nodes_na_res_list;
1093 parent_iab_nodes_na_res_cfg_list_l parent_iab_nodes_na_res_cfg_list;
1094
1095 // sequence methods
1096 SRSASN_CODE pack(bit_ref& bref) const;
1097 SRSASN_CODE unpack(cbit_ref& bref);
1098 void to_json(json_writer& j) const;
1099};
1100
1101// GNB-DU-Cell-Resource-Configuration ::= SEQUENCE
1103 bool du_f_tx_periodicity_present = false;
1104 bool ie_exts_present = false;
1105 subcarrier_spacing_e subcarrier_spacing;
1106 du_f_tx_periodicity_e du_f_tx_periodicity;
1107 du_f_slot_cfg_list_l du_f_slot_cfg_list;
1108 h_sn_a_tx_periodicity_e hsn_a_tx_periodicity;
1109 hs_nas_lot_cfg_list_l hs_nsa_slot_cfg_list;
1111
1112 // sequence methods
1113 SRSASN_CODE pack(bit_ref& bref) const;
1114 SRSASN_CODE unpack(cbit_ref& bref);
1115 void to_json(json_writer& j) const;
1116};
1117
1118// IAB-DU-Cell-Resource-Configuration-FDD-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1120 // Extension ::= OPEN TYPE
1121 struct ext_c {
1122 struct types_opts {
1123 enum options {
1124 ul_freq_info,
1125 ul_tx_bw,
1126 ul_nr_carrier_list,
1127 dl_freq_info,
1128 dl_tx_bw,
1129 dl_nr_carrier_list,
1130 nulltype
1131 } value;
1132
1133 const char* to_string() const;
1134 };
1136
1137 // choice methods
1138 ext_c() = default;
1139 void set(types::options e = types::nulltype);
1140 types type() const { return type_; }
1141 SRSASN_CODE pack(bit_ref& bref) const;
1142 SRSASN_CODE unpack(cbit_ref& bref);
1143 void to_json(json_writer& j) const;
1144 // getters
1145 nr_freq_info_s& ul_freq_info();
1146 tx_bw_s& ul_tx_bw();
1147 nr_carrier_list_l& ul_nr_carrier_list();
1148 nr_freq_info_s& dl_freq_info();
1149 tx_bw_s& dl_tx_bw();
1150 nr_carrier_list_l& dl_nr_carrier_list();
1151 const nr_freq_info_s& ul_freq_info() const;
1152 const tx_bw_s& ul_tx_bw() const;
1153 const nr_carrier_list_l& ul_nr_carrier_list() const;
1154 const nr_freq_info_s& dl_freq_info() const;
1155 const tx_bw_s& dl_tx_bw() const;
1156 const nr_carrier_list_l& dl_nr_carrier_list() const;
1157
1158 private:
1159 types type_;
1161 };
1162
1163 // members lookup methods
1164 static uint32_t idx_to_id(uint32_t idx);
1165 static bool is_id_valid(const uint32_t& id);
1166 static crit_e get_crit(const uint32_t& id);
1167 static ext_c get_ext(const uint32_t& id);
1168 static presence_e get_presence(const uint32_t& id);
1169};
1170
1171// IAB-DU-Cell-Resource-Configuration-TDD-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1173 // Extension ::= OPEN TYPE
1174 struct ext_c {
1175 struct types_opts {
1176 enum options { nr_freq_info, tx_bw, nr_carrier_list, nulltype } value;
1177
1178 const char* to_string() const;
1179 };
1181
1182 // choice methods
1183 ext_c() = default;
1184 void set(types::options e = types::nulltype);
1185 types type() const { return type_; }
1186 SRSASN_CODE pack(bit_ref& bref) const;
1187 SRSASN_CODE unpack(cbit_ref& bref);
1188 void to_json(json_writer& j) const;
1189 // getters
1190 nr_freq_info_s& nr_freq_info();
1191 tx_bw_s& tx_bw();
1192 nr_carrier_list_l& nr_carrier_list();
1193 const nr_freq_info_s& nr_freq_info() const;
1194 const tx_bw_s& tx_bw() const;
1195 const nr_carrier_list_l& nr_carrier_list() const;
1196
1197 private:
1198 types type_;
1200 };
1201
1202 // members lookup methods
1203 static uint32_t idx_to_id(uint32_t idx);
1204 static bool is_id_valid(const uint32_t& id);
1205 static crit_e get_crit(const uint32_t& id);
1206 static ext_c get_ext(const uint32_t& id);
1207 static presence_e get_presence(const uint32_t& id);
1208};
1209
1211 bool ul_freq_info_present = false;
1212 bool ul_tx_bw_present = false;
1213 bool ul_nr_carrier_list_present = false;
1214 bool dl_freq_info_present = false;
1215 bool dl_tx_bw_present = false;
1216 bool dl_nr_carrier_list_present = false;
1217 nr_freq_info_s ul_freq_info;
1218 tx_bw_s ul_tx_bw;
1219 nr_carrier_list_l ul_nr_carrier_list;
1220 nr_freq_info_s dl_freq_info;
1221 tx_bw_s dl_tx_bw;
1222 nr_carrier_list_l dl_nr_carrier_list;
1223
1224 // sequence methods
1225 SRSASN_CODE pack(bit_ref& bref) const;
1226 SRSASN_CODE unpack(cbit_ref& bref);
1227 void to_json(json_writer& j) const;
1228};
1229
1230// IAB-DU-Cell-Resource-Configuration-FDD-Info ::= SEQUENCE
1232 bool ext = false;
1233 bool ie_exts_present = false;
1234 gnb_du_cell_res_cfg_s gnb_du_cell_res_cfg_fdd_ul;
1235 gnb_du_cell_res_cfg_s gnb_du_cell_res_cfg_fdd_dl;
1237 // ...
1238
1239 // sequence methods
1240 SRSASN_CODE pack(bit_ref& bref) const;
1241 SRSASN_CODE unpack(cbit_ref& bref);
1242 void to_json(json_writer& j) const;
1243};
1244
1245// IAB-DU-Cell-Resource-Configuration-Mode-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
1247
1249 bool nr_freq_info_present = false;
1250 bool tx_bw_present = false;
1251 bool nr_carrier_list_present = false;
1252 nr_freq_info_s nr_freq_info;
1253 tx_bw_s tx_bw;
1254 nr_carrier_list_l nr_carrier_list;
1255
1256 // sequence methods
1257 SRSASN_CODE pack(bit_ref& bref) const;
1258 SRSASN_CODE unpack(cbit_ref& bref);
1259 void to_json(json_writer& j) const;
1260};
1261
1262// IAB-DU-Cell-Resource-Configuration-TDD-Info ::= SEQUENCE
1264 bool ext = false;
1265 bool ie_exts_present = false;
1266 gnb_du_cell_res_cfg_s gnb_du_cell_resourc_cfg_tdd;
1268 // ...
1269
1270 // sequence methods
1271 SRSASN_CODE pack(bit_ref& bref) const;
1272 SRSASN_CODE unpack(cbit_ref& bref);
1273 void to_json(json_writer& j) const;
1274};
1275
1276// Activated-Cells-to-be-Updated-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1278
1279// IAB-DU-Cell-Resource-Configuration-Mode-Info ::= CHOICE
1281 struct types_opts {
1282 enum options { fdd, tdd, choice_ext, nulltype } value;
1283
1284 const char* to_string() const;
1285 };
1287
1288 // choice methods
1292 ~iab_du_cell_res_cfg_mode_info_c() { destroy_(); }
1293 void set(types::options e = types::nulltype);
1294 types type() const { return type_; }
1295 SRSASN_CODE pack(bit_ref& bref) const;
1296 SRSASN_CODE unpack(cbit_ref& bref);
1297 void to_json(json_writer& j) const;
1298 // getters
1299 iab_du_cell_res_cfg_fdd_info_s& fdd()
1300 {
1301 assert_choice_type(types::fdd, type_, "IAB-DU-Cell-Resource-Configuration-Mode-Info");
1302 return c.get<iab_du_cell_res_cfg_fdd_info_s>();
1303 }
1304 iab_du_cell_res_cfg_tdd_info_s& tdd()
1305 {
1306 assert_choice_type(types::tdd, type_, "IAB-DU-Cell-Resource-Configuration-Mode-Info");
1307 return c.get<iab_du_cell_res_cfg_tdd_info_s>();
1308 }
1309 protocol_ie_single_container_s<iab_du_cell_res_cfg_mode_info_ext_ies_o>& choice_ext()
1310 {
1311 assert_choice_type(types::choice_ext, type_, "IAB-DU-Cell-Resource-Configuration-Mode-Info");
1312 return c.get<protocol_ie_single_container_s<iab_du_cell_res_cfg_mode_info_ext_ies_o>>();
1313 }
1314 const iab_du_cell_res_cfg_fdd_info_s& fdd() const
1315 {
1316 assert_choice_type(types::fdd, type_, "IAB-DU-Cell-Resource-Configuration-Mode-Info");
1317 return c.get<iab_du_cell_res_cfg_fdd_info_s>();
1318 }
1319 const iab_du_cell_res_cfg_tdd_info_s& tdd() const
1320 {
1321 assert_choice_type(types::tdd, type_, "IAB-DU-Cell-Resource-Configuration-Mode-Info");
1322 return c.get<iab_du_cell_res_cfg_tdd_info_s>();
1323 }
1324 const protocol_ie_single_container_s<iab_du_cell_res_cfg_mode_info_ext_ies_o>& choice_ext() const
1325 {
1326 assert_choice_type(types::choice_ext, type_, "IAB-DU-Cell-Resource-Configuration-Mode-Info");
1327 return c.get<protocol_ie_single_container_s<iab_du_cell_res_cfg_mode_info_ext_ies_o>>();
1328 }
1329 iab_du_cell_res_cfg_fdd_info_s& set_fdd();
1330 iab_du_cell_res_cfg_tdd_info_s& set_tdd();
1331 protocol_ie_single_container_s<iab_du_cell_res_cfg_mode_info_ext_ies_o>& set_choice_ext();
1332
1333private:
1334 types type_;
1335 choice_buffer_t<iab_du_cell_res_cfg_fdd_info_s,
1336 iab_du_cell_res_cfg_tdd_info_s,
1337 protocol_ie_single_container_s<iab_du_cell_res_cfg_mode_info_ext_ies_o>>
1338 c;
1339
1340 void destroy_();
1341};
1342
1343using activ_cells_to_be_upd_list_item_ext_ies_container = protocol_ext_container_empty_l;
1344
1345// Activated-Cells-to-be-Updated-List-Item ::= SEQUENCE
1347 bool ie_exts_present = false;
1348 nr_cgi_s nr_cgi;
1349 iab_du_cell_res_cfg_mode_info_c iab_du_cell_res_cfg_mode_info;
1351
1352 // sequence methods
1353 SRSASN_CODE pack(bit_ref& bref) const;
1354 SRSASN_CODE unpack(cbit_ref& bref);
1355 void to_json(json_writer& j) const;
1356};
1357
1358// Activated-Cells-to-be-Updated-List ::= SEQUENCE (SIZE (1..512)) OF Activated-Cells-to-be-Updated-List-Item
1360
1361// PRSInformationPos-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1363
1364// PosResourceSetTypeAP-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1366
1367// PosResourceSetTypePR-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1369
1370// PosResourceSetTypeSP-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1372
1373// ResourceSetTypeAperiodic-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1375
1376// ResourceSetTypePeriodic-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1378
1379// ResourceSetTypeSemi-persistent-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1381
1382// ResourceTypeAperiodic-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1384
1385// ResourceTypeAperiodicPos-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1387
1388// ResourceTypePeriodic-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1390
1391// ResourceTypePeriodicPos-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1393
1394// ResourceTypeSemi-persistent-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1396
1397// ResourceTypeSemi-persistentPos-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1399
1400// SSB-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1402
1404
1405// PRSInformationPos ::= SEQUENCE
1407 bool prs_res_id_pos_present = false;
1408 bool ie_exts_present = false;
1409 uint16_t prs_id_pos = 0;
1410 uint8_t prs_res_set_id_pos = 0;
1411 uint8_t prs_res_id_pos = 0;
1413
1414 // sequence methods
1415 SRSASN_CODE pack(bit_ref& bref) const;
1416 SRSASN_CODE unpack(cbit_ref& bref);
1417 void to_json(json_writer& j) const;
1418};
1419
1420// PosResourceSetType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
1422
1424
1425// PosResourceSetTypeAP ::= SEQUENCE
1427 bool ie_exts_present = false;
1428 uint8_t srs_res_trigger_list = 1;
1430
1431 // sequence methods
1432 SRSASN_CODE pack(bit_ref& bref) const;
1433 SRSASN_CODE unpack(cbit_ref& bref);
1434 void to_json(json_writer& j) const;
1435};
1436
1438
1439// PosResourceSetTypePR ::= SEQUENCE
1442 enum options { true_value, /*...*/ nulltype } value;
1443
1444 const char* to_string() const;
1445 };
1447
1448 // member variables
1449 bool ie_exts_present = false;
1450 posperiodic_set_e_ posperiodic_set;
1452
1453 // sequence methods
1454 SRSASN_CODE pack(bit_ref& bref) const;
1455 SRSASN_CODE unpack(cbit_ref& bref);
1456 void to_json(json_writer& j) const;
1457};
1458
1460
1461// PosResourceSetTypeSP ::= SEQUENCE
1464 enum options { true_value, /*...*/ nulltype } value;
1465
1466 const char* to_string() const;
1467 };
1469
1470 // member variables
1471 bool ie_exts_present = false;
1472 possemi_persistent_set_e_ possemi_persistent_set;
1474
1475 // sequence methods
1476 SRSASN_CODE pack(bit_ref& bref) const;
1477 SRSASN_CODE unpack(cbit_ref& bref);
1478 void to_json(json_writer& j) const;
1479};
1480
1481// ResourceSetType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
1483
1485
1486// ResourceSetTypeAperiodic ::= SEQUENCE
1488 bool ie_exts_present = false;
1489 uint8_t srs_res_trigger_list = 1;
1490 uint8_t slotoffset = 0;
1492
1493 // sequence methods
1494 SRSASN_CODE pack(bit_ref& bref) const;
1495 SRSASN_CODE unpack(cbit_ref& bref);
1496 void to_json(json_writer& j) const;
1497};
1498
1500
1501// ResourceSetTypePeriodic ::= SEQUENCE
1504 enum options { true_value, /*...*/ nulltype } value;
1505
1506 const char* to_string() const;
1507 };
1509
1510 // member variables
1511 bool ie_exts_present = false;
1512 periodic_set_e_ periodic_set;
1514
1515 // sequence methods
1516 SRSASN_CODE pack(bit_ref& bref) const;
1517 SRSASN_CODE unpack(cbit_ref& bref);
1518 void to_json(json_writer& j) const;
1519};
1520
1522
1523// ResourceSetTypeSemi-persistent ::= SEQUENCE
1526 enum options { true_value, /*...*/ nulltype } value;
1527
1528 const char* to_string() const;
1529 };
1531
1532 // member variables
1533 bool ie_exts_present = false;
1534 semi_persistent_set_e_ semi_persistent_set;
1536
1537 // sequence methods
1538 SRSASN_CODE pack(bit_ref& bref) const;
1539 SRSASN_CODE unpack(cbit_ref& bref);
1540 void to_json(json_writer& j) const;
1541};
1542
1543// ResourceType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
1545
1547
1548// ResourceTypeAperiodic ::= SEQUENCE
1551 enum options { true_value, /*...*/ nulltype } value;
1552
1553 const char* to_string() const;
1554 };
1556
1557 // member variables
1558 bool ie_exts_present = false;
1559 aperiodic_res_type_e_ aperiodic_res_type;
1561
1562 // sequence methods
1563 SRSASN_CODE pack(bit_ref& bref) const;
1564 SRSASN_CODE unpack(cbit_ref& bref);
1565 void to_json(json_writer& j) const;
1566};
1567
1569
1570// ResourceTypeAperiodicPos ::= SEQUENCE
1572 bool ie_exts_present = false;
1573 uint8_t slot_offset = 0;
1575
1576 // sequence methods
1577 SRSASN_CODE pack(bit_ref& bref) const;
1578 SRSASN_CODE unpack(cbit_ref& bref);
1579 void to_json(json_writer& j) const;
1580};
1581
1583
1584// ResourceTypePeriodic ::= SEQUENCE
1587 enum options {
1588 slot1,
1589 slot2,
1590 slot4,
1591 slot5,
1592 slot8,
1593 slot10,
1594 slot16,
1595 slot20,
1596 slot32,
1597 slot40,
1598 slot64,
1599 slot80,
1600 slot160,
1601 slot320,
1602 slot640,
1603 slot1280,
1604 slot2560,
1605 // ...
1606 nulltype
1607 } value;
1608 typedef uint16_t number_type;
1609
1610 const char* to_string() const;
1611 uint16_t to_number() const;
1612 };
1614
1615 // member variables
1616 bool ie_exts_present = false;
1617 periodicity_e_ periodicity;
1618 uint16_t offset = 0;
1620
1621 // sequence methods
1622 SRSASN_CODE pack(bit_ref& bref) const;
1623 SRSASN_CODE unpack(cbit_ref& bref);
1624 void to_json(json_writer& j) const;
1625};
1626
1628
1629// ResourceTypePeriodicPos ::= SEQUENCE
1632 enum options {
1633 slot1,
1634 slot2,
1635 slot4,
1636 slot5,
1637 slot8,
1638 slot10,
1639 slot16,
1640 slot20,
1641 slot32,
1642 slot40,
1643 slot64,
1644 slot80,
1645 slot160,
1646 slot320,
1647 slot640,
1648 slot1280,
1649 slot2560,
1650 slot5120,
1651 slot10240,
1652 slot40960,
1653 slot81920,
1654 // ...
1655 slot128,
1656 slot256,
1657 slot512,
1658 slot20480,
1659 nulltype
1660 } value;
1661 typedef uint32_t number_type;
1662
1663 const char* to_string() const;
1664 uint32_t to_number() const;
1665 };
1667
1668 // member variables
1669 bool ie_exts_present = false;
1670 periodicity_e_ periodicity;
1671 uint32_t offset = 0;
1673
1674 // sequence methods
1675 SRSASN_CODE pack(bit_ref& bref) const;
1676 SRSASN_CODE unpack(cbit_ref& bref);
1677 void to_json(json_writer& j) const;
1678};
1679
1680// ResourceTypePos-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
1682
1684
1685// ResourceTypeSemi-persistent ::= SEQUENCE
1688 enum options {
1689 slot1,
1690 slot2,
1691 slot4,
1692 slot5,
1693 slot8,
1694 slot10,
1695 slot16,
1696 slot20,
1697 slot32,
1698 slot40,
1699 slot64,
1700 slot80,
1701 slot160,
1702 slot320,
1703 slot640,
1704 slot1280,
1705 slot2560,
1706 // ...
1707 nulltype
1708 } value;
1709 typedef uint16_t number_type;
1710
1711 const char* to_string() const;
1712 uint16_t to_number() const;
1713 };
1715
1716 // member variables
1717 bool ie_exts_present = false;
1718 periodicity_e_ periodicity;
1719 uint16_t offset = 0;
1721
1722 // sequence methods
1723 SRSASN_CODE pack(bit_ref& bref) const;
1724 SRSASN_CODE unpack(cbit_ref& bref);
1725 void to_json(json_writer& j) const;
1726};
1727
1729
1730// ResourceTypeSemi-persistentPos ::= SEQUENCE
1733 enum options {
1734 slot1,
1735 slot2,
1736 slot4,
1737 slot5,
1738 slot8,
1739 slot10,
1740 slot16,
1741 slot20,
1742 slot32,
1743 slot40,
1744 slot64,
1745 slot80,
1746 slot160,
1747 slot320,
1748 slot640,
1749 slot1280,
1750 slot2560,
1751 slot5120,
1752 slot10240,
1753 slot40960,
1754 slot81920,
1755 // ...
1756 slot128,
1757 slot256,
1758 slot512,
1759 slot20480,
1760 nulltype
1761 } value;
1762 typedef uint32_t number_type;
1763
1764 const char* to_string() const;
1765 uint32_t to_number() const;
1766 };
1768
1769 // member variables
1770 bool ie_exts_present = false;
1771 periodicity_e_ periodicity;
1772 uint32_t offset = 0;
1774
1775 // sequence methods
1776 SRSASN_CODE pack(bit_ref& bref) const;
1777 SRSASN_CODE unpack(cbit_ref& bref);
1778 void to_json(json_writer& j) const;
1779};
1780
1782
1783// SSB ::= SEQUENCE
1784struct ssb_s {
1785 bool ssb_idx_present = false;
1786 bool ie_exts_present = false;
1787 uint16_t pci_nr = 0;
1788 uint8_t ssb_idx = 0;
1789 ssb_ext_ies_container ie_exts;
1790
1791 // sequence methods
1792 SRSASN_CODE pack(bit_ref& bref) const;
1793 SRSASN_CODE unpack(cbit_ref& bref);
1794 void to_json(json_writer& j) const;
1795};
1796
1797// SpatialInformationPos-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
1799
1800// TransmissionComb-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
1802
1803// TransmissionCombPos-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
1805
1806// PosResourceSetType ::= CHOICE
1808 struct types_opts {
1809 enum options { periodic, semi_persistent, aperiodic, choice_ext, nulltype } value;
1810
1811 const char* to_string() const;
1812 };
1814
1815 // choice methods
1816 pos_res_set_type_c() = default;
1818 pos_res_set_type_c& operator=(const pos_res_set_type_c& other);
1819 ~pos_res_set_type_c() { destroy_(); }
1820 void set(types::options e = types::nulltype);
1821 types type() const { return type_; }
1822 SRSASN_CODE pack(bit_ref& bref) const;
1823 SRSASN_CODE unpack(cbit_ref& bref);
1824 void to_json(json_writer& j) const;
1825 // getters
1826 pos_res_set_type_pr_s& periodic()
1827 {
1828 assert_choice_type(types::periodic, type_, "PosResourceSetType");
1829 return c.get<pos_res_set_type_pr_s>();
1830 }
1831 pos_res_set_type_sp_s& semi_persistent()
1832 {
1833 assert_choice_type(types::semi_persistent, type_, "PosResourceSetType");
1834 return c.get<pos_res_set_type_sp_s>();
1835 }
1836 pos_res_set_type_ap_s& aperiodic()
1837 {
1838 assert_choice_type(types::aperiodic, type_, "PosResourceSetType");
1839 return c.get<pos_res_set_type_ap_s>();
1840 }
1841 protocol_ie_single_container_s<pos_res_set_type_ext_ies_o>& choice_ext()
1842 {
1843 assert_choice_type(types::choice_ext, type_, "PosResourceSetType");
1844 return c.get<protocol_ie_single_container_s<pos_res_set_type_ext_ies_o>>();
1845 }
1846 const pos_res_set_type_pr_s& periodic() const
1847 {
1848 assert_choice_type(types::periodic, type_, "PosResourceSetType");
1849 return c.get<pos_res_set_type_pr_s>();
1850 }
1851 const pos_res_set_type_sp_s& semi_persistent() const
1852 {
1853 assert_choice_type(types::semi_persistent, type_, "PosResourceSetType");
1854 return c.get<pos_res_set_type_sp_s>();
1855 }
1856 const pos_res_set_type_ap_s& aperiodic() const
1857 {
1858 assert_choice_type(types::aperiodic, type_, "PosResourceSetType");
1859 return c.get<pos_res_set_type_ap_s>();
1860 }
1861 const protocol_ie_single_container_s<pos_res_set_type_ext_ies_o>& choice_ext() const
1862 {
1863 assert_choice_type(types::choice_ext, type_, "PosResourceSetType");
1864 return c.get<protocol_ie_single_container_s<pos_res_set_type_ext_ies_o>>();
1865 }
1866 pos_res_set_type_pr_s& set_periodic();
1867 pos_res_set_type_sp_s& set_semi_persistent();
1868 pos_res_set_type_ap_s& set_aperiodic();
1869 protocol_ie_single_container_s<pos_res_set_type_ext_ies_o>& set_choice_ext();
1870
1871private:
1872 types type_;
1873 choice_buffer_t<pos_res_set_type_ap_s,
1874 pos_res_set_type_pr_s,
1875 pos_res_set_type_sp_s,
1876 protocol_ie_single_container_s<pos_res_set_type_ext_ies_o>>
1877 c;
1878
1879 void destroy_();
1880};
1881
1882// PosSRSResource-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1883using pos_srs_res_item_ext_ies_o = protocol_ext_empty_o;
1884
1885// PosSRSResourceID-List ::= SEQUENCE (SIZE (1..16)) OF INTEGER (0..63)
1886using pos_srs_res_id_list_l = bounded_array<uint8_t, 16>;
1887
1888// PosSRSResourceSet-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
1889using pos_srs_res_set_item_ext_ies_o = protocol_ext_empty_o;
1890
1891// ResourceSetType ::= CHOICE
1893 struct types_opts {
1894 enum options { periodic, semi_persistent, aperiodic, choice_ext, nulltype } value;
1895
1896 const char* to_string() const;
1897 };
1899
1900 // choice methods
1901 res_set_type_c() = default;
1902 res_set_type_c(const res_set_type_c& other);
1903 res_set_type_c& operator=(const res_set_type_c& other);
1904 ~res_set_type_c() { destroy_(); }
1905 void set(types::options e = types::nulltype);
1906 types type() const { return type_; }
1907 SRSASN_CODE pack(bit_ref& bref) const;
1908 SRSASN_CODE unpack(cbit_ref& bref);
1909 void to_json(json_writer& j) const;
1910 // getters
1911 res_set_type_periodic_s& periodic()
1912 {
1913 assert_choice_type(types::periodic, type_, "ResourceSetType");
1914 return c.get<res_set_type_periodic_s>();
1915 }
1916 res_set_type_semi_persistent_s& semi_persistent()
1917 {
1918 assert_choice_type(types::semi_persistent, type_, "ResourceSetType");
1919 return c.get<res_set_type_semi_persistent_s>();
1920 }
1921 res_set_type_aperiodic_s& aperiodic()
1922 {
1923 assert_choice_type(types::aperiodic, type_, "ResourceSetType");
1924 return c.get<res_set_type_aperiodic_s>();
1925 }
1926 protocol_ie_single_container_s<res_set_type_ext_ies_o>& choice_ext()
1927 {
1928 assert_choice_type(types::choice_ext, type_, "ResourceSetType");
1929 return c.get<protocol_ie_single_container_s<res_set_type_ext_ies_o>>();
1930 }
1931 const res_set_type_periodic_s& periodic() const
1932 {
1933 assert_choice_type(types::periodic, type_, "ResourceSetType");
1934 return c.get<res_set_type_periodic_s>();
1935 }
1936 const res_set_type_semi_persistent_s& semi_persistent() const
1937 {
1938 assert_choice_type(types::semi_persistent, type_, "ResourceSetType");
1939 return c.get<res_set_type_semi_persistent_s>();
1940 }
1941 const res_set_type_aperiodic_s& aperiodic() const
1942 {
1943 assert_choice_type(types::aperiodic, type_, "ResourceSetType");
1944 return c.get<res_set_type_aperiodic_s>();
1945 }
1946 const protocol_ie_single_container_s<res_set_type_ext_ies_o>& choice_ext() const
1947 {
1948 assert_choice_type(types::choice_ext, type_, "ResourceSetType");
1949 return c.get<protocol_ie_single_container_s<res_set_type_ext_ies_o>>();
1950 }
1951 res_set_type_periodic_s& set_periodic();
1952 res_set_type_semi_persistent_s& set_semi_persistent();
1953 res_set_type_aperiodic_s& set_aperiodic();
1954 protocol_ie_single_container_s<res_set_type_ext_ies_o>& set_choice_ext();
1955
1956private:
1957 types type_;
1958 choice_buffer_t<protocol_ie_single_container_s<res_set_type_ext_ies_o>,
1959 res_set_type_aperiodic_s,
1960 res_set_type_periodic_s,
1961 res_set_type_semi_persistent_s>
1962 c;
1963
1964 void destroy_();
1965};
1966
1967// ResourceType ::= CHOICE
1969 struct types_opts {
1970 enum options { periodic, semi_persistent, aperiodic, choice_ext, nulltype } value;
1971
1972 const char* to_string() const;
1973 };
1975
1976 // choice methods
1977 res_type_c() = default;
1978 res_type_c(const res_type_c& other);
1979 res_type_c& operator=(const res_type_c& other);
1980 ~res_type_c() { destroy_(); }
1981 void set(types::options e = types::nulltype);
1982 types type() const { return type_; }
1983 SRSASN_CODE pack(bit_ref& bref) const;
1984 SRSASN_CODE unpack(cbit_ref& bref);
1985 void to_json(json_writer& j) const;
1986 // getters
1987 res_type_periodic_s& periodic()
1988 {
1989 assert_choice_type(types::periodic, type_, "ResourceType");
1990 return c.get<res_type_periodic_s>();
1991 }
1992 res_type_semi_persistent_s& semi_persistent()
1993 {
1994 assert_choice_type(types::semi_persistent, type_, "ResourceType");
1995 return c.get<res_type_semi_persistent_s>();
1996 }
1997 res_type_aperiodic_s& aperiodic()
1998 {
1999 assert_choice_type(types::aperiodic, type_, "ResourceType");
2000 return c.get<res_type_aperiodic_s>();
2001 }
2002 protocol_ie_single_container_s<res_type_ext_ies_o>& choice_ext()
2003 {
2004 assert_choice_type(types::choice_ext, type_, "ResourceType");
2005 return c.get<protocol_ie_single_container_s<res_type_ext_ies_o>>();
2006 }
2007 const res_type_periodic_s& periodic() const
2008 {
2009 assert_choice_type(types::periodic, type_, "ResourceType");
2010 return c.get<res_type_periodic_s>();
2011 }
2012 const res_type_semi_persistent_s& semi_persistent() const
2013 {
2014 assert_choice_type(types::semi_persistent, type_, "ResourceType");
2015 return c.get<res_type_semi_persistent_s>();
2016 }
2017 const res_type_aperiodic_s& aperiodic() const
2018 {
2019 assert_choice_type(types::aperiodic, type_, "ResourceType");
2020 return c.get<res_type_aperiodic_s>();
2021 }
2022 const protocol_ie_single_container_s<res_type_ext_ies_o>& choice_ext() const
2023 {
2024 assert_choice_type(types::choice_ext, type_, "ResourceType");
2025 return c.get<protocol_ie_single_container_s<res_type_ext_ies_o>>();
2026 }
2027 res_type_periodic_s& set_periodic();
2028 res_type_semi_persistent_s& set_semi_persistent();
2029 res_type_aperiodic_s& set_aperiodic();
2030 protocol_ie_single_container_s<res_type_ext_ies_o>& set_choice_ext();
2031
2032private:
2033 types type_;
2034 choice_buffer_t<protocol_ie_single_container_s<res_type_ext_ies_o>,
2035 res_type_aperiodic_s,
2036 res_type_periodic_s,
2037 res_type_semi_persistent_s>
2038 c;
2039
2040 void destroy_();
2041};
2042
2043// ResourceTypePos ::= CHOICE
2045 struct types_opts {
2046 enum options { periodic, semi_persistent, aperiodic, choice_ext, nulltype } value;
2047
2048 const char* to_string() const;
2049 };
2051
2052 // choice methods
2053 res_type_pos_c() = default;
2054 res_type_pos_c(const res_type_pos_c& other);
2055 res_type_pos_c& operator=(const res_type_pos_c& other);
2056 ~res_type_pos_c() { destroy_(); }
2057 void set(types::options e = types::nulltype);
2058 types type() const { return type_; }
2059 SRSASN_CODE pack(bit_ref& bref) const;
2060 SRSASN_CODE unpack(cbit_ref& bref);
2061 void to_json(json_writer& j) const;
2062 // getters
2063 res_type_periodic_pos_s& periodic()
2064 {
2065 assert_choice_type(types::periodic, type_, "ResourceTypePos");
2066 return c.get<res_type_periodic_pos_s>();
2067 }
2068 res_type_semi_persistent_pos_s& semi_persistent()
2069 {
2070 assert_choice_type(types::semi_persistent, type_, "ResourceTypePos");
2071 return c.get<res_type_semi_persistent_pos_s>();
2072 }
2073 res_type_aperiodic_pos_s& aperiodic()
2074 {
2075 assert_choice_type(types::aperiodic, type_, "ResourceTypePos");
2076 return c.get<res_type_aperiodic_pos_s>();
2077 }
2078 protocol_ie_single_container_s<res_type_pos_ext_ies_o>& choice_ext()
2079 {
2080 assert_choice_type(types::choice_ext, type_, "ResourceTypePos");
2081 return c.get<protocol_ie_single_container_s<res_type_pos_ext_ies_o>>();
2082 }
2083 const res_type_periodic_pos_s& periodic() const
2084 {
2085 assert_choice_type(types::periodic, type_, "ResourceTypePos");
2086 return c.get<res_type_periodic_pos_s>();
2087 }
2088 const res_type_semi_persistent_pos_s& semi_persistent() const
2089 {
2090 assert_choice_type(types::semi_persistent, type_, "ResourceTypePos");
2091 return c.get<res_type_semi_persistent_pos_s>();
2092 }
2093 const res_type_aperiodic_pos_s& aperiodic() const
2094 {
2095 assert_choice_type(types::aperiodic, type_, "ResourceTypePos");
2096 return c.get<res_type_aperiodic_pos_s>();
2097 }
2098 const protocol_ie_single_container_s<res_type_pos_ext_ies_o>& choice_ext() const
2099 {
2100 assert_choice_type(types::choice_ext, type_, "ResourceTypePos");
2101 return c.get<protocol_ie_single_container_s<res_type_pos_ext_ies_o>>();
2102 }
2103 res_type_periodic_pos_s& set_periodic();
2104 res_type_semi_persistent_pos_s& set_semi_persistent();
2105 res_type_aperiodic_pos_s& set_aperiodic();
2106 protocol_ie_single_container_s<res_type_pos_ext_ies_o>& set_choice_ext();
2107
2108private:
2109 types type_;
2110 choice_buffer_t<protocol_ie_single_container_s<res_type_pos_ext_ies_o>,
2111 res_type_aperiodic_pos_s,
2112 res_type_periodic_pos_s,
2113 res_type_semi_persistent_pos_s>
2114 c;
2115
2116 void destroy_();
2117};
2118
2119// SRSResource-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2120using srs_res_ext_ies_o = protocol_ext_empty_o;
2121
2122// SRSResourceID-List ::= SEQUENCE (SIZE (1..16)) OF INTEGER (0..63)
2123using srs_res_id_list_l = bounded_array<uint8_t, 16>;
2124
2125// SRSResourceSet-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2126using srs_res_set_ext_ies_o = protocol_ext_empty_o;
2127
2128// SpatialRelationPos ::= CHOICE
2130 struct types_opts {
2131 enum options { ssb_pos, pr_si_nformation_pos, choice_ext, nulltype } value;
2132
2133 const char* to_string() const;
2134 };
2136
2137 // choice methods
2138 spatial_relation_pos_c() = default;
2140 spatial_relation_pos_c& operator=(const spatial_relation_pos_c& other);
2141 ~spatial_relation_pos_c() { destroy_(); }
2142 void set(types::options e = types::nulltype);
2143 types type() const { return type_; }
2144 SRSASN_CODE pack(bit_ref& bref) const;
2145 SRSASN_CODE unpack(cbit_ref& bref);
2146 void to_json(json_writer& j) const;
2147 // getters
2148 ssb_s& ssb_pos()
2149 {
2150 assert_choice_type(types::ssb_pos, type_, "SpatialRelationPos");
2151 return c.get<ssb_s>();
2152 }
2153 pr_si_nformation_pos_s& pr_si_nformation_pos()
2154 {
2155 assert_choice_type(types::pr_si_nformation_pos, type_, "SpatialRelationPos");
2156 return c.get<pr_si_nformation_pos_s>();
2157 }
2158 protocol_ie_single_container_s<spatial_info_pos_ext_ies_o>& choice_ext()
2159 {
2160 assert_choice_type(types::choice_ext, type_, "SpatialRelationPos");
2161 return c.get<protocol_ie_single_container_s<spatial_info_pos_ext_ies_o>>();
2162 }
2163 const ssb_s& ssb_pos() const
2164 {
2165 assert_choice_type(types::ssb_pos, type_, "SpatialRelationPos");
2166 return c.get<ssb_s>();
2167 }
2168 const pr_si_nformation_pos_s& pr_si_nformation_pos() const
2169 {
2170 assert_choice_type(types::pr_si_nformation_pos, type_, "SpatialRelationPos");
2171 return c.get<pr_si_nformation_pos_s>();
2172 }
2173 const protocol_ie_single_container_s<spatial_info_pos_ext_ies_o>& choice_ext() const
2174 {
2175 assert_choice_type(types::choice_ext, type_, "SpatialRelationPos");
2176 return c.get<protocol_ie_single_container_s<spatial_info_pos_ext_ies_o>>();
2177 }
2178 ssb_s& set_ssb_pos();
2179 pr_si_nformation_pos_s& set_pr_si_nformation_pos();
2180 protocol_ie_single_container_s<spatial_info_pos_ext_ies_o>& set_choice_ext();
2181
2182private:
2183 types type_;
2184 choice_buffer_t<pr_si_nformation_pos_s, protocol_ie_single_container_s<spatial_info_pos_ext_ies_o>, ssb_s> c;
2185
2186 void destroy_();
2187};
2188
2189// TransmissionComb ::= CHOICE
2191 struct n2_s_ {
2192 uint8_t comb_offset_n2 = 0;
2193 uint8_t cyclic_shift_n2 = 0;
2194 };
2195 struct n4_s_ {
2196 uint8_t comb_offset_n4 = 0;
2197 uint8_t cyclic_shift_n4 = 0;
2198 };
2199 struct types_opts {
2200 enum options { n2, n4, choice_ext, nulltype } value;
2201 typedef uint8_t number_type;
2202
2203 const char* to_string() const;
2204 uint8_t to_number() const;
2205 };
2207
2208 // choice methods
2209 tx_comb_c() = default;
2210 tx_comb_c(const tx_comb_c& other);
2211 tx_comb_c& operator=(const tx_comb_c& other);
2212 ~tx_comb_c() { destroy_(); }
2213 void set(types::options e = types::nulltype);
2214 types type() const { return type_; }
2215 SRSASN_CODE pack(bit_ref& bref) const;
2216 SRSASN_CODE unpack(cbit_ref& bref);
2217 void to_json(json_writer& j) const;
2218 // getters
2219 n2_s_& n2()
2220 {
2221 assert_choice_type(types::n2, type_, "TransmissionComb");
2222 return c.get<n2_s_>();
2223 }
2224 n4_s_& n4()
2225 {
2226 assert_choice_type(types::n4, type_, "TransmissionComb");
2227 return c.get<n4_s_>();
2228 }
2229 protocol_ie_single_container_s<tx_comb_ext_ies_o>& choice_ext()
2230 {
2231 assert_choice_type(types::choice_ext, type_, "TransmissionComb");
2232 return c.get<protocol_ie_single_container_s<tx_comb_ext_ies_o>>();
2233 }
2234 const n2_s_& n2() const
2235 {
2236 assert_choice_type(types::n2, type_, "TransmissionComb");
2237 return c.get<n2_s_>();
2238 }
2239 const n4_s_& n4() const
2240 {
2241 assert_choice_type(types::n4, type_, "TransmissionComb");
2242 return c.get<n4_s_>();
2243 }
2244 const protocol_ie_single_container_s<tx_comb_ext_ies_o>& choice_ext() const
2245 {
2246 assert_choice_type(types::choice_ext, type_, "TransmissionComb");
2247 return c.get<protocol_ie_single_container_s<tx_comb_ext_ies_o>>();
2248 }
2249 n2_s_& set_n2();
2250 n4_s_& set_n4();
2251 protocol_ie_single_container_s<tx_comb_ext_ies_o>& set_choice_ext();
2252
2253private:
2254 types type_;
2255 choice_buffer_t<n2_s_, n4_s_, protocol_ie_single_container_s<tx_comb_ext_ies_o>> c;
2256
2257 void destroy_();
2258};
2259
2260// TransmissionCombPos ::= CHOICE
2262 struct n2_s_ {
2263 uint8_t comb_offset_n2 = 0;
2264 uint8_t cyclic_shift_n2 = 0;
2265 };
2266 struct n4_s_ {
2267 uint8_t comb_offset_n4 = 0;
2268 uint8_t cyclic_shift_n4 = 0;
2269 };
2270 struct n8_s_ {
2271 uint8_t comb_offset_n8 = 0;
2272 uint8_t cyclic_shift_n8 = 0;
2273 };
2274 struct types_opts {
2275 enum options { n2, n4, n8, choice_ext, nulltype } value;
2276 typedef uint8_t number_type;
2277
2278 const char* to_string() const;
2279 uint8_t to_number() const;
2280 };
2282
2283 // choice methods
2284 tx_comb_pos_c() = default;
2285 tx_comb_pos_c(const tx_comb_pos_c& other);
2286 tx_comb_pos_c& operator=(const tx_comb_pos_c& other);
2287 ~tx_comb_pos_c() { destroy_(); }
2288 void set(types::options e = types::nulltype);
2289 types type() const { return type_; }
2290 SRSASN_CODE pack(bit_ref& bref) const;
2291 SRSASN_CODE unpack(cbit_ref& bref);
2292 void to_json(json_writer& j) const;
2293 // getters
2294 n2_s_& n2()
2295 {
2296 assert_choice_type(types::n2, type_, "TransmissionCombPos");
2297 return c.get<n2_s_>();
2298 }
2299 n4_s_& n4()
2300 {
2301 assert_choice_type(types::n4, type_, "TransmissionCombPos");
2302 return c.get<n4_s_>();
2303 }
2304 n8_s_& n8()
2305 {
2306 assert_choice_type(types::n8, type_, "TransmissionCombPos");
2307 return c.get<n8_s_>();
2308 }
2309 protocol_ie_single_container_s<tx_comb_pos_ext_ies_o>& choice_ext()
2310 {
2311 assert_choice_type(types::choice_ext, type_, "TransmissionCombPos");
2312 return c.get<protocol_ie_single_container_s<tx_comb_pos_ext_ies_o>>();
2313 }
2314 const n2_s_& n2() const
2315 {
2316 assert_choice_type(types::n2, type_, "TransmissionCombPos");
2317 return c.get<n2_s_>();
2318 }
2319 const n4_s_& n4() const
2320 {
2321 assert_choice_type(types::n4, type_, "TransmissionCombPos");
2322 return c.get<n4_s_>();
2323 }
2324 const n8_s_& n8() const
2325 {
2326 assert_choice_type(types::n8, type_, "TransmissionCombPos");
2327 return c.get<n8_s_>();
2328 }
2329 const protocol_ie_single_container_s<tx_comb_pos_ext_ies_o>& choice_ext() const
2330 {
2331 assert_choice_type(types::choice_ext, type_, "TransmissionCombPos");
2332 return c.get<protocol_ie_single_container_s<tx_comb_pos_ext_ies_o>>();
2333 }
2334 n2_s_& set_n2();
2335 n4_s_& set_n4();
2336 n8_s_& set_n8();
2337 protocol_ie_single_container_s<tx_comb_pos_ext_ies_o>& set_choice_ext();
2338
2339private:
2340 types type_;
2341 choice_buffer_t<n2_s_, n4_s_, n8_s_, protocol_ie_single_container_s<tx_comb_pos_ext_ies_o>> c;
2342
2343 void destroy_();
2344};
2345
2346using pos_srs_res_item_ext_ies_container = protocol_ext_container_empty_l;
2347
2348// PosSRSResource-Item ::= SEQUENCE
2351 enum options { n1, n2, n4, n8, n12, nulltype } value;
2352 typedef uint8_t number_type;
2353
2354 const char* to_string() const;
2355 uint8_t to_number() const;
2356 };
2359 enum options { neither, group_hop, seq_hop, nulltype } value;
2360
2361 const char* to_string() const;
2362 };
2364
2365 // member variables
2366 bool spatial_relation_pos_present = false;
2367 bool ie_exts_present = false;
2368 uint8_t srs_pos_res_id = 0;
2369 tx_comb_pos_c tx_comb_pos;
2370 uint8_t start_position = 0;
2371 nrof_symbols_e_ nrof_symbols;
2372 uint16_t freq_domain_shift = 0;
2373 uint8_t c_srs = 0;
2374 group_or_seq_hop_e_ group_or_seq_hop;
2375 res_type_pos_c res_type_pos;
2376 uint32_t seq_id = 0;
2377 spatial_relation_pos_c spatial_relation_pos;
2379
2380 // sequence methods
2381 SRSASN_CODE pack(bit_ref& bref) const;
2382 SRSASN_CODE unpack(cbit_ref& bref);
2383 void to_json(json_writer& j) const;
2384};
2385
2387
2388// PosSRSResourceSet-Item ::= SEQUENCE
2390 bool ie_exts_present = false;
2391 uint8_t possrs_res_set_id = 0;
2392 pos_srs_res_id_list_l poss_rs_res_id_list;
2393 pos_res_set_type_c posres_set_type;
2395
2396 // sequence methods
2397 SRSASN_CODE pack(bit_ref& bref) const;
2398 SRSASN_CODE unpack(cbit_ref& bref);
2399 void to_json(json_writer& j) const;
2400};
2401
2403
2404// SRSResource ::= SEQUENCE
2407 enum options { port1, ports2, ports4, nulltype } value;
2408 typedef uint8_t number_type;
2409
2410 const char* to_string() const;
2411 uint8_t to_number() const;
2412 };
2415 enum options { n1, n2, n4, nulltype } value;
2416 typedef uint8_t number_type;
2417
2418 const char* to_string() const;
2419 uint8_t to_number() const;
2420 };
2423 enum options { n1, n2, n4, nulltype } value;
2424 typedef uint8_t number_type;
2425
2426 const char* to_string() const;
2427 uint8_t to_number() const;
2428 };
2431 enum options { neither, group_hop, seq_hop, nulltype } value;
2432
2433 const char* to_string() const;
2434 };
2436
2437 // member variables
2438 bool ie_exts_present = false;
2439 uint8_t srs_res_id = 0;
2440 nrof_srs_ports_e_ nrof_srs_ports;
2441 tx_comb_c tx_comb;
2442 uint8_t start_position = 0;
2443 nrof_symbols_e_ nrof_symbols;
2444 repeat_factor_e_ repeat_factor;
2445 uint8_t freq_domain_position = 0;
2446 uint16_t freq_domain_shift = 0;
2447 uint8_t c_srs = 0;
2448 uint8_t b_srs = 0;
2449 uint8_t b_hop = 0;
2450 group_or_seq_hop_e_ group_or_seq_hop;
2451 res_type_c res_type;
2452 uint16_t seq_id = 0;
2454
2455 // sequence methods
2456 SRSASN_CODE pack(bit_ref& bref) const;
2457 SRSASN_CODE unpack(cbit_ref& bref);
2458 void to_json(json_writer& j) const;
2459};
2460
2462
2463// SRSResourceSet ::= SEQUENCE
2465 bool ie_exts_present = false;
2466 uint8_t srs_res_set_id = 0;
2467 srs_res_id_list_l srs_res_id_list;
2468 res_set_type_c res_set_type;
2470
2471 // sequence methods
2472 SRSASN_CODE pack(bit_ref& bref) const;
2473 SRSASN_CODE unpack(cbit_ref& bref);
2474 void to_json(json_writer& j) const;
2475};
2476
2477// PosSRSResource-List ::= SEQUENCE (SIZE (1..64)) OF PosSRSResource-Item
2479
2480// PosSRSResourceSet-List ::= SEQUENCE (SIZE (1..16)) OF PosSRSResourceSet-Item
2482
2483// SRSConfig-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2485
2486// SRSResource-List ::= SEQUENCE (SIZE (1..64)) OF SRSResource
2488
2489// SRSResourceSet-List ::= SEQUENCE (SIZE (1..16)) OF SRSResourceSet
2491
2492// ActiveULBWP-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2494
2496
2497// SRSConfig ::= SEQUENCE
2499 bool ie_exts_present = false;
2500 srs_res_list_l srs_res_list;
2501 pos_srs_res_list_l pos_srs_res_list;
2502 srs_res_set_list_l srs_res_set_list;
2503 pos_srs_res_set_list_l pos_srs_res_set_list;
2505
2506 // sequence methods
2507 SRSASN_CODE pack(bit_ref& bref) const;
2508 SRSASN_CODE unpack(cbit_ref& bref);
2509 void to_json(json_writer& j) const;
2510};
2511
2513
2514// ActiveULBWP ::= SEQUENCE
2517 enum options { khz15, khz30, khz60, khz120, /*...*/ nulltype } value;
2518 typedef uint8_t number_type;
2519
2520 const char* to_string() const;
2521 uint8_t to_number() const;
2522 };
2524 struct cp_opts {
2525 enum options { normal, extended, nulltype } value;
2526
2527 const char* to_string() const;
2528 };
2529 using cp_e_ = enumerated<cp_opts>;
2531 enum options { true_value, /*...*/ nulltype } value;
2532
2533 const char* to_string() const;
2534 };
2536
2537 // member variables
2538 bool shift7dot5k_hz_present = false;
2539 bool ie_exts_present = false;
2540 uint16_t location_and_bw = 0;
2541 subcarrier_spacing_e_ subcarrier_spacing;
2542 cp_e_ cp;
2543 uint16_t tx_direct_current_location = 0;
2544 shift7dot5k_hz_e_ shift7dot5k_hz;
2545 srs_cfg_s srs_cfg;
2547
2548 // sequence methods
2549 SRSASN_CODE pack(bit_ref& bref) const;
2550 SRSASN_CODE unpack(cbit_ref& bref);
2551 void to_json(json_writer& j) const;
2552};
2553
2554// EgressBHRLCCHItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2556
2557// BAPRoutingIDExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2559
2561
2562// EgressBHRLCCHItem ::= SEQUENCE
2564 bool ie_exts_present = false;
2565 fixed_bitstring<10, false, true> next_hop_bap_address;
2568
2569 // sequence methods
2570 SRSASN_CODE pack(bit_ref& bref) const;
2571 SRSASN_CODE unpack(cbit_ref& bref);
2572 void to_json(json_writer& j) const;
2573};
2574
2575// NonF1terminatingTopologyIndicator ::= ENUMERATED
2577 enum options { true_value, /*...*/ nulltype } value;
2578
2579 const char* to_string() const;
2580};
2582
2584
2585// BAPRoutingID ::= SEQUENCE
2587 bool ie_exts_present = false;
2591
2592 // sequence methods
2593 SRSASN_CODE pack(bit_ref& bref) const;
2594 SRSASN_CODE unpack(cbit_ref& bref);
2595 void to_json(json_writer& j) const;
2596};
2597
2598// BHInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2600 // Extension ::= OPEN TYPE
2601 struct ext_c {
2602 struct types_opts {
2603 enum options { non_f1terminating_topology_ind, nulltype } value;
2604 typedef uint8_t number_type;
2605
2606 const char* to_string() const;
2607 uint8_t to_number() const;
2608 };
2610
2611 // choice methods
2612 types type() const { return types::non_f1terminating_topology_ind; }
2613 SRSASN_CODE pack(bit_ref& bref) const;
2614 SRSASN_CODE unpack(cbit_ref& bref);
2615 void to_json(json_writer& j) const;
2616 // getters
2617 non_f1terminating_topology_ind_e& non_f1terminating_topology_ind() { return c; }
2618 const non_f1terminating_topology_ind_e& non_f1terminating_topology_ind() const { return c; }
2619
2620 private:
2621 non_f1terminating_topology_ind_e c;
2622 };
2623
2624 // members lookup methods
2625 static uint32_t idx_to_id(uint32_t idx);
2626 static bool is_id_valid(const uint32_t& id);
2627 static crit_e get_crit(const uint32_t& id);
2628 static ext_c get_ext(const uint32_t& id);
2629 static presence_e get_presence(const uint32_t& id);
2630};
2631
2632// EgressBHRLCCHList ::= SEQUENCE (SIZE (1..2)) OF EgressBHRLCCHItem
2633using egress_bh_rlc_ch_list_l = dyn_array<egress_bh_rlc_ch_item_s>;
2634
2635// GTPTunnel-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2636using gtp_tunnel_ext_ies_o = protocol_ext_empty_o;
2637
2638// BHInfo ::= SEQUENCE
2640 bool ba_prouting_id_present = false;
2641 bap_routing_id_s ba_prouting_id;
2642 egress_bh_rlc_ch_list_l egress_bh_rlc_ch_list;
2644
2645 // sequence methods
2646 SRSASN_CODE pack(bit_ref& bref) const;
2647 SRSASN_CODE unpack(cbit_ref& bref);
2648 void to_json(json_writer& j) const;
2649};
2650
2652
2653// GTPTunnel ::= SEQUENCE
2655 bool ext = false;
2656 bool ie_exts_present = false;
2657 bounded_bitstring<1, 160, true, true> transport_layer_address;
2658 fixed_octstring<4, true> gtp_teid;
2660 // ...
2661
2662 // sequence methods
2663 SRSASN_CODE pack(bit_ref& bref) const;
2664 SRSASN_CODE unpack(cbit_ref& bref);
2665 void to_json(json_writer& j) const;
2666};
2667
2668// UPTransportLayerInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
2670
2671// AdditionalPDCPDuplicationTNL-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2673 // Extension ::= OPEN TYPE
2674 struct ext_c {
2675 struct types_opts {
2676 enum options { bh_info, nulltype } value;
2677
2678 const char* to_string() const;
2679 };
2681
2682 // choice methods
2683 types type() const { return types::bh_info; }
2684 SRSASN_CODE pack(bit_ref& bref) const;
2685 SRSASN_CODE unpack(cbit_ref& bref);
2686 void to_json(json_writer& j) const;
2687 // getters
2688 bh_info_s& bh_info() { return c; }
2689 const bh_info_s& bh_info() const { return c; }
2690
2691 private:
2692 bh_info_s c;
2693 };
2694
2695 // members lookup methods
2696 static uint32_t idx_to_id(uint32_t idx);
2697 static bool is_id_valid(const uint32_t& id);
2698 static crit_e get_crit(const uint32_t& id);
2699 static ext_c get_ext(const uint32_t& id);
2700 static presence_e get_presence(const uint32_t& id);
2701};
2702
2703// UPTransportLayerInformation ::= CHOICE
2705 struct types_opts {
2706 enum options { gtp_tunnel, choice_ext, nulltype } value;
2707
2708 const char* to_string() const;
2709 };
2711
2712 // choice methods
2713 up_transport_layer_info_c() = default;
2716 ~up_transport_layer_info_c() { destroy_(); }
2717 void set(types::options e = types::nulltype);
2718 types type() const { return type_; }
2719 SRSASN_CODE pack(bit_ref& bref) const;
2720 SRSASN_CODE unpack(cbit_ref& bref);
2721 void to_json(json_writer& j) const;
2722 // getters
2723 gtp_tunnel_s& gtp_tunnel()
2724 {
2725 assert_choice_type(types::gtp_tunnel, type_, "UPTransportLayerInformation");
2726 return c.get<gtp_tunnel_s>();
2727 }
2728 protocol_ie_single_container_s<up_transport_layer_info_ext_ies_o>& choice_ext()
2729 {
2730 assert_choice_type(types::choice_ext, type_, "UPTransportLayerInformation");
2731 return c.get<protocol_ie_single_container_s<up_transport_layer_info_ext_ies_o>>();
2732 }
2733 const gtp_tunnel_s& gtp_tunnel() const
2734 {
2735 assert_choice_type(types::gtp_tunnel, type_, "UPTransportLayerInformation");
2736 return c.get<gtp_tunnel_s>();
2737 }
2738 const protocol_ie_single_container_s<up_transport_layer_info_ext_ies_o>& choice_ext() const
2739 {
2740 assert_choice_type(types::choice_ext, type_, "UPTransportLayerInformation");
2741 return c.get<protocol_ie_single_container_s<up_transport_layer_info_ext_ies_o>>();
2742 }
2743 gtp_tunnel_s& set_gtp_tunnel();
2744 protocol_ie_single_container_s<up_transport_layer_info_ext_ies_o>& set_choice_ext();
2745
2746private:
2747 types type_;
2748 choice_buffer_t<gtp_tunnel_s, protocol_ie_single_container_s<up_transport_layer_info_ext_ies_o>> c;
2749
2750 void destroy_();
2751};
2752
2753// AdditionalPDCPDuplicationTNL-Item ::= SEQUENCE
2755 bool ext = false;
2756 up_transport_layer_info_c add_pdcp_dupl_up_tnl_info;
2758 // ...
2759
2760 // sequence methods
2761 SRSASN_CODE pack(bit_ref& bref) const;
2762 SRSASN_CODE unpack(cbit_ref& bref);
2763 void to_json(json_writer& j) const;
2764};
2765
2766// AdditionalPDCPDuplicationTNL-List ::= SEQUENCE (SIZE (1..2)) OF AdditionalPDCPDuplicationTNL-Item
2768
2769// LCS-to-GCS-Translation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2771
2773
2774// LCS-to-GCS-Translation ::= SEQUENCE
2776 bool ext = false;
2777 bool ie_exts_present = false;
2778 uint16_t alpha = 0;
2779 uint16_t beta = 0;
2780 uint16_t gamma = 0;
2782 // ...
2783
2784 // sequence methods
2785 SRSASN_CODE pack(bit_ref& bref) const;
2786 SRSASN_CODE unpack(cbit_ref& bref);
2787 void to_json(json_writer& j) const;
2788};
2789
2790// UL-AoA-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2792
2793// ZoAInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2795
2796// MultipleULAoA-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
2798
2800
2801// UL-AoA ::= SEQUENCE
2803 bool ext = false;
2804 bool zenith_ao_a_present = false;
2805 bool lcs_to_gcs_translation_present = false;
2806 bool ie_exts_present = false;
2807 uint16_t azimuth_ao_a = 0;
2808 uint16_t zenith_ao_a = 0;
2809 lcs_to_gcs_translation_s lcs_to_gcs_translation;
2811 // ...
2812
2813 // sequence methods
2814 SRSASN_CODE pack(bit_ref& bref) const;
2815 SRSASN_CODE unpack(cbit_ref& bref);
2816 void to_json(json_writer& j) const;
2817};
2818
2820
2821// ZoAInformation ::= SEQUENCE
2823 bool ext = false;
2824 bool lcs_to_gcs_translation_present = false;
2825 bool ie_exts_present = false;
2826 uint16_t zenith_ao_a = 0;
2827 lcs_to_gcs_translation_s lcs_to_gcs_translation;
2829 // ...
2830
2831 // sequence methods
2832 SRSASN_CODE pack(bit_ref& bref) const;
2833 SRSASN_CODE unpack(cbit_ref& bref);
2834 void to_json(json_writer& j) const;
2835};
2836
2837// AngleMeasurementQuality-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2839
2840// MultipleULAoA-Item ::= CHOICE
2842 struct types_opts {
2843 enum options { ul_ao_a, ul_zo_a, choice_ext, nulltype } value;
2844
2845 const char* to_string() const;
2846 };
2848
2849 // choice methods
2850 multiple_ul_ao_a_item_c() = default;
2852 multiple_ul_ao_a_item_c& operator=(const multiple_ul_ao_a_item_c& other);
2853 ~multiple_ul_ao_a_item_c() { destroy_(); }
2854 void set(types::options e = types::nulltype);
2855 types type() const { return type_; }
2856 SRSASN_CODE pack(bit_ref& bref) const;
2857 SRSASN_CODE unpack(cbit_ref& bref);
2858 void to_json(json_writer& j) const;
2859 // getters
2860 ul_ao_a_s& ul_ao_a()
2861 {
2862 assert_choice_type(types::ul_ao_a, type_, "MultipleULAoA-Item");
2863 return c.get<ul_ao_a_s>();
2864 }
2865 zo_a_info_s& ul_zo_a()
2866 {
2867 assert_choice_type(types::ul_zo_a, type_, "MultipleULAoA-Item");
2868 return c.get<zo_a_info_s>();
2869 }
2870 protocol_ie_single_container_s<multiple_ul_ao_a_item_ext_ies_o>& choice_ext()
2871 {
2872 assert_choice_type(types::choice_ext, type_, "MultipleULAoA-Item");
2873 return c.get<protocol_ie_single_container_s<multiple_ul_ao_a_item_ext_ies_o>>();
2874 }
2875 const ul_ao_a_s& ul_ao_a() const
2876 {
2877 assert_choice_type(types::ul_ao_a, type_, "MultipleULAoA-Item");
2878 return c.get<ul_ao_a_s>();
2879 }
2880 const zo_a_info_s& ul_zo_a() const
2881 {
2882 assert_choice_type(types::ul_zo_a, type_, "MultipleULAoA-Item");
2883 return c.get<zo_a_info_s>();
2884 }
2885 const protocol_ie_single_container_s<multiple_ul_ao_a_item_ext_ies_o>& choice_ext() const
2886 {
2887 assert_choice_type(types::choice_ext, type_, "MultipleULAoA-Item");
2888 return c.get<protocol_ie_single_container_s<multiple_ul_ao_a_item_ext_ies_o>>();
2889 }
2890 ul_ao_a_s& set_ul_ao_a();
2891 zo_a_info_s& set_ul_zo_a();
2892 protocol_ie_single_container_s<multiple_ul_ao_a_item_ext_ies_o>& set_choice_ext();
2893
2894private:
2895 types type_;
2896 choice_buffer_t<protocol_ie_single_container_s<multiple_ul_ao_a_item_ext_ies_o>, ul_ao_a_s, zo_a_info_s> c;
2897
2898 void destroy_();
2899};
2900
2901// TimingMeasurementQuality-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2902using timing_meas_quality_ext_ies_o = protocol_ext_empty_o;
2903
2904using angle_meas_quality_ext_ies_container = protocol_ext_container_empty_l;
2905
2906// AngleMeasurementQuality ::= SEQUENCE
2909 enum options { deg0dot1, /*...*/ nulltype } value;
2910 typedef float number_type;
2911
2912 const char* to_string() const;
2913 float to_number() const;
2914 const char* to_number_string() const;
2915 };
2917
2918 // member variables
2919 bool zenith_quality_present = false;
2920 bool ie_exts_present = false;
2921 uint16_t azimuth_quality = 0;
2922 uint16_t zenith_quality = 0;
2923 resolution_e_ resolution;
2925
2926 // sequence methods
2927 SRSASN_CODE pack(bit_ref& bref) const;
2928 SRSASN_CODE unpack(cbit_ref& bref);
2929 void to_json(json_writer& j) const;
2930};
2931
2932// MultipleULAoA-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2934
2935// MultipleULAoA-List ::= SEQUENCE (SIZE (1..8)) OF MultipleULAoA-Item
2937
2938// TRPMeasurementQuality-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
2940
2942
2943// TimingMeasurementQuality ::= SEQUENCE
2946 enum options { m0dot1, m1, m10, m30, /*...*/ nulltype } value;
2947 typedef float number_type;
2948
2949 const char* to_string() const;
2950 float to_number() const;
2951 const char* to_number_string() const;
2952 };
2954
2955 // member variables
2956 bool ie_exts_present = false;
2957 uint8_t meas_quality = 0;
2958 resolution_e_ resolution;
2960
2961 // sequence methods
2962 SRSASN_CODE pack(bit_ref& bref) const;
2963 SRSASN_CODE unpack(cbit_ref& bref);
2964 void to_json(json_writer& j) const;
2965};
2966
2967// UL-SRS-RSRPP-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2969
2971
2972// MultipleULAoA ::= SEQUENCE
2974 bool ext = false;
2975 bool ie_exts_present = false;
2976 multiple_ul_ao_a_list_l multiple_ul_ao_a;
2978 // ...
2979
2980 // sequence methods
2981 SRSASN_CODE pack(bit_ref& bref) const;
2982 SRSASN_CODE unpack(cbit_ref& bref);
2983 void to_json(json_writer& j) const;
2984};
2985
2986// RelativePathDelay-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
2988
2989// TRPMeasurementQuality-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
2991
2992// TRPMeasurementQuality-Item ::= CHOICE
2994 struct types_opts {
2995 enum options { timing_meas_quality, angle_meas_quality, choice_ext, nulltype } value;
2996
2997 const char* to_string() const;
2998 };
3000
3001 // choice methods
3002 trp_meas_quality_item_c() = default;
3004 trp_meas_quality_item_c& operator=(const trp_meas_quality_item_c& other);
3005 ~trp_meas_quality_item_c() { destroy_(); }
3006 void set(types::options e = types::nulltype);
3007 types type() const { return type_; }
3008 SRSASN_CODE pack(bit_ref& bref) const;
3009 SRSASN_CODE unpack(cbit_ref& bref);
3010 void to_json(json_writer& j) const;
3011 // getters
3012 timing_meas_quality_s& timing_meas_quality()
3013 {
3014 assert_choice_type(types::timing_meas_quality, type_, "TRPMeasurementQuality-Item");
3015 return c.get<timing_meas_quality_s>();
3016 }
3017 angle_meas_quality_s& angle_meas_quality()
3018 {
3019 assert_choice_type(types::angle_meas_quality, type_, "TRPMeasurementQuality-Item");
3020 return c.get<angle_meas_quality_s>();
3021 }
3022 protocol_ie_single_container_s<trp_meas_quality_item_ext_ies_o>& choice_ext()
3023 {
3024 assert_choice_type(types::choice_ext, type_, "TRPMeasurementQuality-Item");
3025 return c.get<protocol_ie_single_container_s<trp_meas_quality_item_ext_ies_o>>();
3026 }
3027 const timing_meas_quality_s& timing_meas_quality() const
3028 {
3029 assert_choice_type(types::timing_meas_quality, type_, "TRPMeasurementQuality-Item");
3030 return c.get<timing_meas_quality_s>();
3031 }
3032 const angle_meas_quality_s& angle_meas_quality() const
3033 {
3034 assert_choice_type(types::angle_meas_quality, type_, "TRPMeasurementQuality-Item");
3035 return c.get<angle_meas_quality_s>();
3036 }
3037 const protocol_ie_single_container_s<trp_meas_quality_item_ext_ies_o>& choice_ext() const
3038 {
3039 assert_choice_type(types::choice_ext, type_, "TRPMeasurementQuality-Item");
3040 return c.get<protocol_ie_single_container_s<trp_meas_quality_item_ext_ies_o>>();
3041 }
3042 timing_meas_quality_s& set_timing_meas_quality();
3043 angle_meas_quality_s& set_angle_meas_quality();
3044 protocol_ie_single_container_s<trp_meas_quality_item_ext_ies_o>& set_choice_ext();
3045
3046private:
3047 types type_;
3048 choice_buffer_t<angle_meas_quality_s,
3049 protocol_ie_single_container_s<trp_meas_quality_item_ext_ies_o>,
3050 timing_meas_quality_s>
3051 c;
3052
3053 void destroy_();
3054};
3055
3056using ul_srs_rsrp_p_ext_ies_container = protocol_ext_container_empty_l;
3057
3058// UL-SRS-RSRPP ::= SEQUENCE
3060 bool ext = false;
3061 bool ie_exts_present = false;
3062 uint8_t first_path_rsrp_p = 0;
3064 // ...
3065
3066 // sequence methods
3067 SRSASN_CODE pack(bit_ref& bref) const;
3068 SRSASN_CODE unpack(cbit_ref& bref);
3069 void to_json(json_writer& j) const;
3070};
3071
3072// AdditionalPath-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3074 // Extension ::= OPEN TYPE
3075 struct ext_c {
3076 struct types_opts {
3077 enum options { multiple_ul_ao_a, path_pwr, nulltype } value;
3078
3079 const char* to_string() const;
3080 };
3082
3083 // choice methods
3084 ext_c() = default;
3085 void set(types::options e = types::nulltype);
3086 types type() const { return type_; }
3087 SRSASN_CODE pack(bit_ref& bref) const;
3088 SRSASN_CODE unpack(cbit_ref& bref);
3089 void to_json(json_writer& j) const;
3090 // getters
3091 multiple_ul_ao_a_s& multiple_ul_ao_a();
3092 ul_srs_rsrp_p_s& path_pwr();
3093 const multiple_ul_ao_a_s& multiple_ul_ao_a() const;
3094 const ul_srs_rsrp_p_s& path_pwr() const;
3095
3096 private:
3097 types type_;
3099 };
3100
3101 // members lookup methods
3102 static uint32_t idx_to_id(uint32_t idx);
3103 static bool is_id_valid(const uint32_t& id);
3104 static crit_e get_crit(const uint32_t& id);
3105 static ext_c get_ext(const uint32_t& id);
3106 static presence_e get_presence(const uint32_t& id);
3107};
3108
3109// RelativePathDelay ::= CHOICE
3111 struct types_opts {
3112 enum options { k0, k1, k2, k3, k4, k5, choice_ext, nulltype } value;
3113 typedef uint8_t number_type;
3114
3115 const char* to_string() const;
3116 uint8_t to_number() const;
3117 };
3119
3120 // choice methods
3121 relative_path_delay_c() = default;
3123 relative_path_delay_c& operator=(const relative_path_delay_c& other);
3124 ~relative_path_delay_c() { destroy_(); }
3125 void set(types::options e = types::nulltype);
3126 types type() const { return type_; }
3127 SRSASN_CODE pack(bit_ref& bref) const;
3128 SRSASN_CODE unpack(cbit_ref& bref);
3129 void to_json(json_writer& j) const;
3130 // getters
3131 uint16_t& k0()
3132 {
3133 assert_choice_type(types::k0, type_, "RelativePathDelay");
3134 return c.get<uint16_t>();
3135 }
3136 uint16_t& k1()
3137 {
3138 assert_choice_type(types::k1, type_, "RelativePathDelay");
3139 return c.get<uint16_t>();
3140 }
3141 uint16_t& k2()
3142 {
3143 assert_choice_type(types::k2, type_, "RelativePathDelay");
3144 return c.get<uint16_t>();
3145 }
3146 uint16_t& k3()
3147 {
3148 assert_choice_type(types::k3, type_, "RelativePathDelay");
3149 return c.get<uint16_t>();
3150 }
3151 uint16_t& k4()
3152 {
3153 assert_choice_type(types::k4, type_, "RelativePathDelay");
3154 return c.get<uint16_t>();
3155 }
3156 uint16_t& k5()
3157 {
3158 assert_choice_type(types::k5, type_, "RelativePathDelay");
3159 return c.get<uint16_t>();
3160 }
3161 protocol_ie_single_container_s<relative_path_delay_ext_ies_o>& choice_ext()
3162 {
3163 assert_choice_type(types::choice_ext, type_, "RelativePathDelay");
3164 return c.get<protocol_ie_single_container_s<relative_path_delay_ext_ies_o>>();
3165 }
3166 const uint16_t& k0() const
3167 {
3168 assert_choice_type(types::k0, type_, "RelativePathDelay");
3169 return c.get<uint16_t>();
3170 }
3171 const uint16_t& k1() const
3172 {
3173 assert_choice_type(types::k1, type_, "RelativePathDelay");
3174 return c.get<uint16_t>();
3175 }
3176 const uint16_t& k2() const
3177 {
3178 assert_choice_type(types::k2, type_, "RelativePathDelay");
3179 return c.get<uint16_t>();
3180 }
3181 const uint16_t& k3() const
3182 {
3183 assert_choice_type(types::k3, type_, "RelativePathDelay");
3184 return c.get<uint16_t>();
3185 }
3186 const uint16_t& k4() const
3187 {
3188 assert_choice_type(types::k4, type_, "RelativePathDelay");
3189 return c.get<uint16_t>();
3190 }
3191 const uint16_t& k5() const
3192 {
3193 assert_choice_type(types::k5, type_, "RelativePathDelay");
3194 return c.get<uint16_t>();
3195 }
3196 const protocol_ie_single_container_s<relative_path_delay_ext_ies_o>& choice_ext() const
3197 {
3198 assert_choice_type(types::choice_ext, type_, "RelativePathDelay");
3199 return c.get<protocol_ie_single_container_s<relative_path_delay_ext_ies_o>>();
3200 }
3201 uint16_t& set_k0();
3202 uint16_t& set_k1();
3203 uint16_t& set_k2();
3204 uint16_t& set_k3();
3205 uint16_t& set_k4();
3206 uint16_t& set_k5();
3207 protocol_ie_single_container_s<relative_path_delay_ext_ies_o>& set_choice_ext();
3208
3209private:
3210 types type_;
3211 choice_buffer_t<protocol_ie_single_container_s<relative_path_delay_ext_ies_o>> c;
3212
3213 void destroy_();
3214};
3215
3216using trp_meas_quality_ext_ies_container = protocol_ext_container_empty_l;
3217
3218// TRPMeasurementQuality ::= SEQUENCE
3220 bool ie_exts_present = false;
3221 trp_meas_quality_item_c tr_pmeas_quality_item;
3223
3224 // sequence methods
3225 SRSASN_CODE pack(bit_ref& bref) const;
3226 SRSASN_CODE unpack(cbit_ref& bref);
3227 void to_json(json_writer& j) const;
3228};
3229
3231 bool multiple_ul_ao_a_present = false;
3232 bool path_pwr_present = false;
3233 multiple_ul_ao_a_s multiple_ul_ao_a;
3234 ul_srs_rsrp_p_s path_pwr;
3235
3236 // sequence methods
3237 SRSASN_CODE pack(bit_ref& bref) const;
3238 SRSASN_CODE unpack(cbit_ref& bref);
3239 void to_json(json_writer& j) const;
3240};
3241
3242// AdditionalPath-Item ::= SEQUENCE
3244 bool path_quality_present = false;
3245 bool ie_exts_present = false;
3246 relative_path_delay_c relative_path_delay;
3247 trp_meas_quality_s path_quality;
3249
3250 // sequence methods
3251 SRSASN_CODE pack(bit_ref& bref) const;
3252 SRSASN_CODE unpack(cbit_ref& bref);
3253 void to_json(json_writer& j) const;
3254};
3255
3256// AdditionalPath-List ::= SEQUENCE (SIZE (1..2)) OF AdditionalPath-Item
3258
3259// AdditionalSIBMessageList-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3261
3263
3264// AdditionalSIBMessageList-Item ::= SEQUENCE
3266 bool ie_exts_present = false;
3269
3270 // sequence methods
3271 SRSASN_CODE pack(bit_ref& bref) const;
3272 SRSASN_CODE unpack(cbit_ref& bref);
3273 void to_json(json_writer& j) const;
3274};
3275
3276// AdditionalSIBMessageList ::= SEQUENCE (SIZE (1..63)) OF AdditionalSIBMessageList-Item
3278
3279// AffectedSSB-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3281
3283
3284// AffectedSSB-Item ::= SEQUENCE
3286 bool ext = false;
3287 bool ie_exts_present = false;
3288 uint8_t ssb_idx = 0;
3290 // ...
3291
3292 // sequence methods
3293 SRSASN_CODE pack(bit_ref& bref) const;
3294 SRSASN_CODE unpack(cbit_ref& bref);
3295 void to_json(json_writer& j) const;
3296};
3297
3298// AffectedCellsAndBeams-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3300
3301// AffectedSSB-List ::= SEQUENCE (SIZE (1..64)) OF AffectedSSB-Item
3303
3305
3306// AffectedCellsAndBeams-Item ::= SEQUENCE
3308 bool ext = false;
3309 bool ie_exts_present = false;
3310 nr_cgi_s nr_cgi;
3311 affected_ssb_list_l affected_ssb_list;
3313 // ...
3314
3315 // sequence methods
3316 SRSASN_CODE pack(bit_ref& bref) const;
3317 SRSASN_CODE unpack(cbit_ref& bref);
3318 void to_json(json_writer& j) const;
3319};
3320
3321// AffectedCellsAndBeams-List ::= SEQUENCE (SIZE (1..32)) OF AffectedCellsAndBeams-Item
3323
3324// AggressorCellList-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3326
3328
3329// AggressorCellList-Item ::= SEQUENCE
3331 bool ie_exts_present = false;
3332 nr_cgi_s aggressor_cell_id;
3334
3335 // sequence methods
3336 SRSASN_CODE pack(bit_ref& bref) const;
3337 SRSASN_CODE unpack(cbit_ref& bref);
3338 void to_json(json_writer& j) const;
3339};
3340
3341// AggressorCellList ::= SEQUENCE (SIZE (1..512)) OF AggressorCellList-Item
3343
3344// AggressorgNBSetID-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3346
3348
3349// AggressorgNBSetID ::= SEQUENCE
3351 bool ie_exts_present = false;
3352 fixed_bitstring<22, false, true> aggressor_gnb_set_id;
3354
3355 // sequence methods
3356 SRSASN_CODE pack(bit_ref& bref) const;
3357 SRSASN_CODE unpack(cbit_ref& bref);
3358 void to_json(json_writer& j) const;
3359};
3360
3361// AllocationAndRetentionPriority-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3363
3364// Pre-emptionCapability ::= ENUMERATED
3366 enum options { shall_not_trigger_pre_emption, may_trigger_pre_emption, nulltype } value;
3367
3368 const char* to_string() const;
3369};
3371
3372// Pre-emptionVulnerability ::= ENUMERATED
3374 enum options { not_pre_emptable, pre_emptable, nulltype } value;
3375
3376 const char* to_string() const;
3377};
3379
3381
3382// AllocationAndRetentionPriority ::= SEQUENCE
3384 bool ext = false;
3385 bool ie_exts_present = false;
3386 uint8_t prio_level = 0;
3387 pre_emption_cap_e pre_emption_cap;
3388 pre_emption_vulnerability_e pre_emption_vulnerability;
3390 // ...
3391
3392 // sequence methods
3393 SRSASN_CODE pack(bit_ref& bref) const;
3394 SRSASN_CODE unpack(cbit_ref& bref);
3395 void to_json(json_writer& j) const;
3396};
3397
3398// PacketErrorRate-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3400
3401// AlternativeQoSParaSetItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3403
3405
3406// PacketErrorRate ::= SEQUENCE
3408 bool ext = false;
3409 bool ie_exts_present = false;
3410 uint8_t per_scalar = 0;
3411 uint8_t per_exponent = 0;
3413 // ...
3414
3415 // sequence methods
3416 SRSASN_CODE pack(bit_ref& bref) const;
3417 SRSASN_CODE unpack(cbit_ref& bref);
3418 void to_json(json_writer& j) const;
3419};
3420
3422
3423// AlternativeQoSParaSetItem ::= SEQUENCE
3425 bool ext = false;
3426 bool guaranteed_flow_bit_rate_dl_present = false;
3427 bool guaranteed_flow_bit_rate_ul_present = false;
3428 bool packet_delay_budget_present = false;
3429 bool packet_error_rate_present = false;
3430 bool ie_exts_present = false;
3431 uint8_t alt_qos_para_set_idx = 1;
3432 uint64_t guaranteed_flow_bit_rate_dl = 0;
3433 uint64_t guaranteed_flow_bit_rate_ul = 0;
3434 uint16_t packet_delay_budget = 0;
3435 packet_error_rate_s packet_error_rate;
3437 // ...
3438
3439 // sequence methods
3440 SRSASN_CODE pack(bit_ref& bref) const;
3441 SRSASN_CODE unpack(cbit_ref& bref);
3442 void to_json(json_writer& j) const;
3443};
3444
3445// AlternativeQoSParaSetList ::= SEQUENCE (SIZE (1..8)) OF AlternativeQoSParaSetItem
3447
3448// Expected-Azimuth-AoA-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3450
3451// Expected-Zenith-AoA-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3453
3455
3456// Expected-Azimuth-AoA ::= SEQUENCE
3458 bool ext = false;
3459 bool ie_exts_present = false;
3460 uint16_t expected_azimuth_ao_a_value = 0;
3461 uint16_t expected_azimuth_ao_a_uncertainty = 0;
3463 // ...
3464
3465 // sequence methods
3466 SRSASN_CODE pack(bit_ref& bref) const;
3467 SRSASN_CODE unpack(cbit_ref& bref);
3468 void to_json(json_writer& j) const;
3469};
3470
3471// Expected-UL-AoA-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3473
3475
3476// Expected-Zenith-AoA ::= SEQUENCE
3478 bool ext = false;
3479 bool ie_exts_present = false;
3480 uint16_t expected_zenith_ao_a_value = 0;
3481 uint16_t expected_zenith_ao_a_uncertainty = 0;
3483 // ...
3484
3485 // sequence methods
3486 SRSASN_CODE pack(bit_ref& bref) const;
3487 SRSASN_CODE unpack(cbit_ref& bref);
3488 void to_json(json_writer& j) const;
3489};
3490
3491// Expected-ZoA-only-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3493
3494// AngleMeasurementType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
3496
3498
3499// Expected-UL-AoA ::= SEQUENCE
3501 bool ext = false;
3502 bool expected_zenith_ao_a_present = false;
3503 bool ie_exts_present = false;
3504 expected_azimuth_ao_a_s expected_azimuth_ao_a;
3505 expected_zenith_ao_a_s expected_zenith_ao_a;
3507 // ...
3508
3509 // sequence methods
3510 SRSASN_CODE pack(bit_ref& bref) const;
3511 SRSASN_CODE unpack(cbit_ref& bref);
3512 void to_json(json_writer& j) const;
3513};
3514
3516
3517// Expected-ZoA-only ::= SEQUENCE
3519 bool ext = false;
3520 bool ie_exts_present = false;
3521 expected_zenith_ao_a_s expected_zo_a_only;
3523 // ...
3524
3525 // sequence methods
3526 SRSASN_CODE pack(bit_ref& bref) const;
3527 SRSASN_CODE unpack(cbit_ref& bref);
3528 void to_json(json_writer& j) const;
3529};
3530
3531// AngleMeasurementType ::= CHOICE
3533 struct types_opts {
3534 enum options { expected_ul_ao_a, expected_zo_a, choice_ext, nulltype } value;
3535
3536 const char* to_string() const;
3537 };
3539
3540 // choice methods
3541 angle_meas_type_c() = default;
3543 angle_meas_type_c& operator=(const angle_meas_type_c& other);
3544 ~angle_meas_type_c() { destroy_(); }
3545 void set(types::options e = types::nulltype);
3546 types type() const { return type_; }
3547 SRSASN_CODE pack(bit_ref& bref) const;
3548 SRSASN_CODE unpack(cbit_ref& bref);
3549 void to_json(json_writer& j) const;
3550 // getters
3551 expected_ul_ao_a_s& expected_ul_ao_a()
3552 {
3553 assert_choice_type(types::expected_ul_ao_a, type_, "AngleMeasurementType");
3554 return c.get<expected_ul_ao_a_s>();
3555 }
3556 expected_zo_a_only_s& expected_zo_a()
3557 {
3558 assert_choice_type(types::expected_zo_a, type_, "AngleMeasurementType");
3559 return c.get<expected_zo_a_only_s>();
3560 }
3561 protocol_ie_single_container_s<angle_meas_type_ext_ies_o>& choice_ext()
3562 {
3563 assert_choice_type(types::choice_ext, type_, "AngleMeasurementType");
3564 return c.get<protocol_ie_single_container_s<angle_meas_type_ext_ies_o>>();
3565 }
3566 const expected_ul_ao_a_s& expected_ul_ao_a() const
3567 {
3568 assert_choice_type(types::expected_ul_ao_a, type_, "AngleMeasurementType");
3569 return c.get<expected_ul_ao_a_s>();
3570 }
3571 const expected_zo_a_only_s& expected_zo_a() const
3572 {
3573 assert_choice_type(types::expected_zo_a, type_, "AngleMeasurementType");
3574 return c.get<expected_zo_a_only_s>();
3575 }
3576 const protocol_ie_single_container_s<angle_meas_type_ext_ies_o>& choice_ext() const
3577 {
3578 assert_choice_type(types::choice_ext, type_, "AngleMeasurementType");
3579 return c.get<protocol_ie_single_container_s<angle_meas_type_ext_ies_o>>();
3580 }
3581 expected_ul_ao_a_s& set_expected_ul_ao_a();
3582 expected_zo_a_only_s& set_expected_zo_a();
3583 protocol_ie_single_container_s<angle_meas_type_ext_ies_o>& set_choice_ext();
3584
3585private:
3586 types type_;
3587 choice_buffer_t<expected_ul_ao_a_s, expected_zo_a_only_s, protocol_ie_single_container_s<angle_meas_type_ext_ies_o>>
3588 c;
3589
3590 void destroy_();
3591};
3592
3593// AoA-AssistanceInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3594using ao_a_assist_info_ext_ies_o = protocol_ext_empty_o;
3595
3596using ao_a_assist_info_ext_ies_container = protocol_ext_container_empty_l;
3597
3598// AoA-AssistanceInfo ::= SEQUENCE
3600 bool ext = false;
3601 bool lcs_to_gcs_translation_present = false;
3602 bool ie_exts_present = false;
3603 angle_meas_type_c angle_meas;
3604 lcs_to_gcs_translation_s lcs_to_gcs_translation;
3606 // ...
3607
3608 // sequence methods
3609 SRSASN_CODE pack(bit_ref& bref) const;
3610 SRSASN_CODE unpack(cbit_ref& bref);
3611 void to_json(json_writer& j) const;
3612};
3613
3614// AperiodicSRSResourceTriggerList ::= SEQUENCE (SIZE (1..3)) OF INTEGER (1..3)
3616
3617// SRSResourceTrigger-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3619
3621
3622// SRSResourceTrigger ::= SEQUENCE
3624 bool ie_exts_present = false;
3625 aperiodic_srs_res_trigger_list_l aperiodic_srs_res_trigger_list;
3627
3628 // sequence methods
3629 SRSASN_CODE pack(bit_ref& bref) const;
3630 SRSASN_CODE unpack(cbit_ref& bref);
3631 void to_json(json_writer& j) const;
3632};
3633
3634// Associated-SCell-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3636
3638
3639// Associated-SCell-Item ::= SEQUENCE
3641 bool ie_exts_present = false;
3642 nr_cgi_s scell_id;
3644
3645 // sequence methods
3646 SRSASN_CODE pack(bit_ref& bref) const;
3647 SRSASN_CODE unpack(cbit_ref& bref);
3648 void to_json(json_writer& j) const;
3649};
3650
3651// AvailablePLMNList-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3653
3655
3656// AvailablePLMNList-Item ::= SEQUENCE
3658 bool ie_exts_present = false;
3661
3662 // sequence methods
3663 SRSASN_CODE pack(bit_ref& bref) const;
3664 SRSASN_CODE unpack(cbit_ref& bref);
3665 void to_json(json_writer& j) const;
3666};
3667
3668// AvailablePLMNList ::= SEQUENCE (SIZE (1..6)) OF AvailablePLMNList-Item
3670
3671// AvailableSNPN-ID-List-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3673
3674// BroadcastNIDList ::= SEQUENCE (SIZE (1..12)) OF BIT STRING (SIZE (44))
3676
3678
3679// AvailableSNPN-ID-List-Item ::= SEQUENCE
3681 bool ext = false;
3682 bool ie_exts_present = false;
3684 broadcast_n_id_list_l available_n_id_list;
3686 // ...
3687
3688 // sequence methods
3689 SRSASN_CODE pack(bit_ref& bref) const;
3690 SRSASN_CODE unpack(cbit_ref& bref);
3691 void to_json(json_writer& j) const;
3692};
3693
3694// AvailableSNPN-ID-List ::= SEQUENCE (SIZE (1..12)) OF AvailableSNPN-ID-List-Item
3696
3697// BAP-Header-Rewriting-Added-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3699
3701
3702// BAP-Header-Rewriting-Added-List-Item ::= SEQUENCE
3704 bool non_f1terminating_topology_ind_present = false;
3705 bool ie_exts_present = false;
3706 bap_routing_id_s ingress_bap_routing_id;
3707 bap_routing_id_s egress_bap_routing_id;
3708 non_f1terminating_topology_ind_e non_f1terminating_topology_ind;
3710
3711 // sequence methods
3712 SRSASN_CODE pack(bit_ref& bref) const;
3713 SRSASN_CODE unpack(cbit_ref& bref);
3714 void to_json(json_writer& j) const;
3715};
3716
3717// BAP-Header-Rewriting-Removed-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3719
3721
3722// BAP-Header-Rewriting-Removed-List-Item ::= SEQUENCE
3724 bool ie_exts_present = false;
3725 bap_routing_id_s ingress_bap_routing_id;
3727
3728 // sequence methods
3729 SRSASN_CODE pack(bit_ref& bref) const;
3730 SRSASN_CODE unpack(cbit_ref& bref);
3731 void to_json(json_writer& j) const;
3732};
3733
3734// IABTNLAddress-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
3736
3737// DSInformationList ::= SEQUENCE (SIZE (0..64)) OF BIT STRING (SIZE (6))
3739
3740// EgressNonF1terminatingTopologyIndicator ::= ENUMERATED
3742 enum options { true_value, /*...*/ nulltype } value;
3743
3744 const char* to_string() const;
3745};
3747
3748// IABTNLAddress ::= CHOICE
3750 struct types_opts {
3751 enum options { ip_v4_address, ip_v6_address, ip_v6_prefix, choice_ext, nulltype } value;
3752
3753 const char* to_string() const;
3754 };
3756
3757 // choice methods
3758 iab_tnl_address_c() = default;
3760 iab_tnl_address_c& operator=(const iab_tnl_address_c& other);
3761 ~iab_tnl_address_c() { destroy_(); }
3762 void set(types::options e = types::nulltype);
3763 types type() const { return type_; }
3764 SRSASN_CODE pack(bit_ref& bref) const;
3765 SRSASN_CODE unpack(cbit_ref& bref);
3766 void to_json(json_writer& j) const;
3767 // getters
3768 fixed_bitstring<32, false, true>& ip_v4_address()
3769 {
3770 assert_choice_type(types::ip_v4_address, type_, "IABTNLAddress");
3771 return c.get<fixed_bitstring<32, false, true>>();
3772 }
3773 fixed_bitstring<128, false, true>& ip_v6_address()
3774 {
3775 assert_choice_type(types::ip_v6_address, type_, "IABTNLAddress");
3776 return c.get<fixed_bitstring<128, false, true>>();
3777 }
3778 fixed_bitstring<64, false, true>& ip_v6_prefix()
3779 {
3780 assert_choice_type(types::ip_v6_prefix, type_, "IABTNLAddress");
3781 return c.get<fixed_bitstring<64, false, true>>();
3782 }
3783 protocol_ie_single_container_s<iab_tnl_address_ext_ies_o>& choice_ext()
3784 {
3785 assert_choice_type(types::choice_ext, type_, "IABTNLAddress");
3786 return c.get<protocol_ie_single_container_s<iab_tnl_address_ext_ies_o>>();
3787 }
3788 const fixed_bitstring<32, false, true>& ip_v4_address() const
3789 {
3790 assert_choice_type(types::ip_v4_address, type_, "IABTNLAddress");
3791 return c.get<fixed_bitstring<32, false, true>>();
3792 }
3793 const fixed_bitstring<128, false, true>& ip_v6_address() const
3794 {
3795 assert_choice_type(types::ip_v6_address, type_, "IABTNLAddress");
3796 return c.get<fixed_bitstring<128, false, true>>();
3797 }
3798 const fixed_bitstring<64, false, true>& ip_v6_prefix() const
3799 {
3800 assert_choice_type(types::ip_v6_prefix, type_, "IABTNLAddress");
3801 return c.get<fixed_bitstring<64, false, true>>();
3802 }
3803 const protocol_ie_single_container_s<iab_tnl_address_ext_ies_o>& choice_ext() const
3804 {
3805 assert_choice_type(types::choice_ext, type_, "IABTNLAddress");
3806 return c.get<protocol_ie_single_container_s<iab_tnl_address_ext_ies_o>>();
3807 }
3808 fixed_bitstring<32, false, true>& set_ip_v4_address();
3809 fixed_bitstring<128, false, true>& set_ip_v6_address();
3810 fixed_bitstring<64, false, true>& set_ip_v6_prefix();
3811 protocol_ie_single_container_s<iab_tnl_address_ext_ies_o>& set_choice_ext();
3812
3813private:
3814 types type_;
3815 choice_buffer_t<fixed_bitstring<128, false, true>, protocol_ie_single_container_s<iab_tnl_address_ext_ies_o>> c;
3816
3817 void destroy_();
3818};
3819
3820// IPHeaderInformation-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3821using ip_hdr_info_item_ext_ies_o = protocol_ext_empty_o;
3822
3823// IngressNonF1terminatingTopologyIndicator ::= ENUMERATED
3825 enum options { true_value, /*...*/ nulltype } value;
3826
3827 const char* to_string() const;
3828};
3830
3831// BAPlayerBHRLCchannelMappingInfo-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3833 // Extension ::= OPEN TYPE
3834 struct ext_c {
3835 struct types_opts {
3836 enum options { ingress_non_f1terminating_topology_ind, egress_non_f1terminating_topology_ind, nulltype } value;
3837
3838 const char* to_string() const;
3839 };
3841
3842 // choice methods
3843 ext_c() = default;
3844 void set(types::options e = types::nulltype);
3845 types type() const { return type_; }
3846 SRSASN_CODE pack(bit_ref& bref) const;
3847 SRSASN_CODE unpack(cbit_ref& bref);
3848 void to_json(json_writer& j) const;
3849 // getters
3850 ingress_non_f1terminating_topology_ind_e& ingress_non_f1terminating_topology_ind();
3851 egress_non_f1terminating_topology_ind_e& egress_non_f1terminating_topology_ind();
3852 const ingress_non_f1terminating_topology_ind_e& ingress_non_f1terminating_topology_ind() const;
3853 const egress_non_f1terminating_topology_ind_e& egress_non_f1terminating_topology_ind() const;
3854
3855 private:
3856 types type_;
3858 };
3859
3860 // members lookup methods
3861 static uint32_t idx_to_id(uint32_t idx);
3862 static bool is_id_valid(const uint32_t& id);
3863 static crit_e get_crit(const uint32_t& id);
3864 static ext_c get_ext(const uint32_t& id);
3865 static presence_e get_presence(const uint32_t& id);
3866};
3867
3868using ip_hdr_info_item_ext_ies_container = protocol_ext_container_empty_l;
3869
3870// IPHeaderInformation ::= SEQUENCE
3872 bool ext = false;
3873 bool ds_info_list_present = false;
3874 bool ip_v6_flow_label_present = false;
3875 bool ie_exts_present = false;
3876 iab_tnl_address_c dest_iab_tnl_address;
3877 d_si_nformation_list_l ds_info_list;
3878 fixed_bitstring<20, false, true> ip_v6_flow_label;
3880 // ...
3881
3882 // sequence methods
3883 SRSASN_CODE pack(bit_ref& bref) const;
3884 SRSASN_CODE unpack(cbit_ref& bref);
3885 void to_json(json_writer& j) const;
3886};
3887
3888// IPtolayer2TrafficMappingInfo-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3890
3892 bool ingress_non_f1terminating_topology_ind_present = false;
3893 bool egress_non_f1terminating_topology_ind_present = false;
3894 ingress_non_f1terminating_topology_ind_e ingress_non_f1terminating_topology_ind;
3895 egress_non_f1terminating_topology_ind_e egress_non_f1terminating_topology_ind;
3896
3897 // sequence methods
3898 SRSASN_CODE pack(bit_ref& bref) const;
3899 SRSASN_CODE unpack(cbit_ref& bref);
3900 void to_json(json_writer& j) const;
3901};
3902
3903// BAPlayerBHRLCchannelMappingInfo-Item ::= SEQUENCE
3905 bool ext = false;
3906 bool prior_hop_bap_address_present = false;
3907 bool ingressb_h_rlc_ch_id_present = false;
3908 bool next_hop_bap_address_present = false;
3909 bool egressb_h_rlc_ch_id_present = false;
3910 bool ie_exts_present = false;
3912 fixed_bitstring<10, false, true> prior_hop_bap_address;
3913 fixed_bitstring<16, false, true> ingressb_h_rlc_ch_id;
3914 fixed_bitstring<10, false, true> next_hop_bap_address;
3915 fixed_bitstring<16, false, true> egressb_h_rlc_ch_id;
3917 // ...
3918
3919 // sequence methods
3920 SRSASN_CODE pack(bit_ref& bref) const;
3921 SRSASN_CODE unpack(cbit_ref& bref);
3922 void to_json(json_writer& j) const;
3923};
3924
3925// BH-Routing-Information-Added-List-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3927 // Extension ::= OPEN TYPE
3928 struct ext_c {
3929 struct types_opts {
3930 enum options { non_f1terminating_topology_ind, nulltype } value;
3931 typedef uint8_t number_type;
3932
3933 const char* to_string() const;
3934 uint8_t to_number() const;
3935 };
3937
3938 // choice methods
3939 types type() const { return types::non_f1terminating_topology_ind; }
3940 SRSASN_CODE pack(bit_ref& bref) const;
3941 SRSASN_CODE unpack(cbit_ref& bref);
3942 void to_json(json_writer& j) const;
3943 // getters
3944 non_f1terminating_topology_ind_e& non_f1terminating_topology_ind() { return c; }
3945 const non_f1terminating_topology_ind_e& non_f1terminating_topology_ind() const { return c; }
3946
3947 private:
3948 non_f1terminating_topology_ind_e c;
3949 };
3950
3951 // members lookup methods
3952 static uint32_t idx_to_id(uint32_t idx);
3953 static bool is_id_valid(const uint32_t& id);
3954 static crit_e get_crit(const uint32_t& id);
3955 static ext_c get_ext(const uint32_t& id);
3956 static presence_e get_presence(const uint32_t& id);
3957};
3958
3959// BH-Routing-Information-Removed-List-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3960using bh_routing_info_remd_list_item_ext_ies_o = protocol_ext_empty_o;
3961
3962using ip_tolayer2_traffic_map_info_item_ext_ies_container = protocol_ext_container_empty_l;
3963
3964// IPtolayer2TrafficMappingInfo-Item ::= SEQUENCE
3966 bool ext = false;
3967 bool ie_exts_present = false;
3969 ip_hdr_info_s ip_hdr_info;
3970 bh_info_s bh_info;
3972 // ...
3973
3974 // sequence methods
3975 SRSASN_CODE pack(bit_ref& bref) const;
3976 SRSASN_CODE unpack(cbit_ref& bref);
3977 void to_json(json_writer& j) const;
3978};
3979
3980// BAPlayerBHRLCchannelMappingInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
3982
3983// BAPlayerBHRLCchannelMappingInfoList ::= SEQUENCE (SIZE (1..67108864)) OF BAPlayerBHRLCchannelMappingInfo-Item
3985
3986// BH-Routing-Information-Added-List-Item ::= SEQUENCE
3988 bap_routing_id_s bap_routing_id;
3989 fixed_bitstring<10, false, true> next_hop_bap_address;
3991
3992 // sequence methods
3993 SRSASN_CODE pack(bit_ref& bref) const;
3994 SRSASN_CODE unpack(cbit_ref& bref);
3995 void to_json(json_writer& j) const;
3996};
3997
3999
4000// BH-Routing-Information-Removed-List-Item ::= SEQUENCE
4002 bool ie_exts_present = false;
4003 bap_routing_id_s bap_routing_id;
4005
4006 // sequence methods
4007 SRSASN_CODE pack(bit_ref& bref) const;
4008 SRSASN_CODE unpack(cbit_ref& bref);
4009 void to_json(json_writer& j) const;
4010};
4011
4012// IPtolayer2TrafficMappingInfoList ::= SEQUENCE (SIZE (1..67108864)) OF IPtolayer2TrafficMappingInfo-Item
4014
4015// MappingInformationtoRemove ::= SEQUENCE (SIZE (1..67108864)) OF BIT STRING (SIZE (26))
4017
4019
4020// BAPlayerBHRLCchannelMappingInfo ::= SEQUENCE
4022 bool ext = false;
4023 bool ie_exts_present = false;
4024 ba_player_bh_rlc_ch_map_info_list_l ba_player_bh_rlc_ch_map_info_to_add;
4025 map_infoto_rem_l ba_player_bh_rlc_ch_map_info_to_rem;
4027 // ...
4028
4029 // sequence methods
4030 SRSASN_CODE pack(bit_ref& bref) const;
4031 SRSASN_CODE unpack(cbit_ref& bref);
4032 void to_json(json_writer& j) const;
4033};
4034
4035// IPtolayer2TrafficMappingInfo ::= SEQUENCE
4037 bool ext = false;
4038 bool ie_exts_present = false;
4039 ip_tolayer2_traffic_map_info_list_l ip_tolayer2_traffic_map_info_to_add;
4040 map_infoto_rem_l ip_tolayer2_traffic_map_info_to_rem;
4042 // ...
4043
4044 // sequence methods
4045 SRSASN_CODE pack(bit_ref& bref) const;
4046 SRSASN_CODE unpack(cbit_ref& bref);
4047 void to_json(json_writer& j) const;
4048};
4049
4050// TrafficMappingInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
4052
4053// Re-routingEnableIndicator ::= ENUMERATED
4055 enum options { true_value, false_value, /*...*/ nulltype } value;
4056
4057 const char* to_string() const;
4058};
4060
4061// TrafficMappingInfo ::= CHOICE
4063 struct types_opts {
4064 enum options { ip_tolayer2_traffic_map_info, ba_player_bh_rlc_ch_map_info, choice_ext, nulltype } value;
4065 typedef uint8_t number_type;
4066
4067 const char* to_string() const;
4068 uint8_t to_number() const;
4069 };
4071
4072 // choice methods
4073 traffic_map_info_c() = default;
4075 traffic_map_info_c& operator=(const traffic_map_info_c& other);
4076 ~traffic_map_info_c() { destroy_(); }
4077 void set(types::options e = types::nulltype);
4078 types type() const { return type_; }
4079 SRSASN_CODE pack(bit_ref& bref) const;
4080 SRSASN_CODE unpack(cbit_ref& bref);
4081 void to_json(json_writer& j) const;
4082 // getters
4083 ip_tolayer2_traffic_map_info_s& ip_tolayer2_traffic_map_info()
4084 {
4085 assert_choice_type(types::ip_tolayer2_traffic_map_info, type_, "TrafficMappingInfo");
4086 return c.get<ip_tolayer2_traffic_map_info_s>();
4087 }
4088 ba_player_bh_rlc_ch_map_info_s& ba_player_bh_rlc_ch_map_info()
4089 {
4090 assert_choice_type(types::ba_player_bh_rlc_ch_map_info, type_, "TrafficMappingInfo");
4091 return c.get<ba_player_bh_rlc_ch_map_info_s>();
4092 }
4093 protocol_ie_single_container_s<traffic_map_info_ext_ies_o>& choice_ext()
4094 {
4095 assert_choice_type(types::choice_ext, type_, "TrafficMappingInfo");
4096 return c.get<protocol_ie_single_container_s<traffic_map_info_ext_ies_o>>();
4097 }
4098 const ip_tolayer2_traffic_map_info_s& ip_tolayer2_traffic_map_info() const
4099 {
4100 assert_choice_type(types::ip_tolayer2_traffic_map_info, type_, "TrafficMappingInfo");
4101 return c.get<ip_tolayer2_traffic_map_info_s>();
4102 }
4103 const ba_player_bh_rlc_ch_map_info_s& ba_player_bh_rlc_ch_map_info() const
4104 {
4105 assert_choice_type(types::ba_player_bh_rlc_ch_map_info, type_, "TrafficMappingInfo");
4106 return c.get<ba_player_bh_rlc_ch_map_info_s>();
4107 }
4108 const protocol_ie_single_container_s<traffic_map_info_ext_ies_o>& choice_ext() const
4109 {
4110 assert_choice_type(types::choice_ext, type_, "TrafficMappingInfo");
4111 return c.get<protocol_ie_single_container_s<traffic_map_info_ext_ies_o>>();
4112 }
4113 ip_tolayer2_traffic_map_info_s& set_ip_tolayer2_traffic_map_info();
4114 ba_player_bh_rlc_ch_map_info_s& set_ba_player_bh_rlc_ch_map_info();
4115 protocol_ie_single_container_s<traffic_map_info_ext_ies_o>& set_choice_ext();
4116
4117private:
4118 types type_;
4119 choice_buffer_t<ba_player_bh_rlc_ch_map_info_s,
4120 ip_tolayer2_traffic_map_info_s,
4121 protocol_ie_single_container_s<traffic_map_info_ext_ies_o>>
4122 c;
4123
4124 void destroy_();
4125};
4126
4127// CriticalityDiagnostics-IE-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4128using crit_diagnostics_ie_item_ext_ies_o = protocol_ext_empty_o;
4129
4130// TypeOfError ::= ENUMERATED
4132 enum options { not_understood, missing, /*...*/ nulltype } value;
4133
4134 const char* to_string() const;
4135};
4137
4139
4140// CriticalityDiagnostics-IE-Item ::= SEQUENCE
4142 bool ext = false;
4143 bool ie_exts_present = false;
4144 crit_e ie_crit;
4145 uint32_t ie_id = 0;
4146 type_of_error_e type_of_error;
4148 // ...
4149
4150 // sequence methods
4151 SRSASN_CODE pack(bit_ref& bref) const;
4152 SRSASN_CODE unpack(cbit_ref& bref);
4153 void to_json(json_writer& j) const;
4154};
4155
4156// CriticalityDiagnostics-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4158
4159// CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..256)) OF CriticalityDiagnostics-IE-Item
4161
4162// TriggeringMessage ::= ENUMERATED
4164 enum options { init_msg, successful_outcome, unsuccessful_outcome, nulltype } value;
4165
4166 const char* to_string() const;
4167};
4169
4171
4172// CriticalityDiagnostics ::= SEQUENCE
4174 bool ext = false;
4175 bool proc_code_present = false;
4176 bool trigger_msg_present = false;
4177 bool proc_crit_present = false;
4178 bool transaction_id_present = false;
4179 bool ie_exts_present = false;
4180 uint16_t proc_code = 0;
4181 trigger_msg_e trigger_msg;
4182 crit_e proc_crit;
4183 uint16_t transaction_id = 0;
4184 crit_diagnostics_ie_list_l ies_crit_diagnostics;
4186 // ...
4187
4188 // sequence methods
4189 SRSASN_CODE pack(bit_ref& bref) const;
4190 SRSASN_CODE unpack(cbit_ref& bref);
4191 void to_json(json_writer& j) const;
4192};
4193
4194// Cause-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
4196
4197// CauseMisc ::= ENUMERATED
4199 enum options {
4200 ctrl_processing_overload,
4201 not_enough_user_plane_processing_res,
4202 hardware_fail,
4203 om_intervention,
4204 unspecified,
4205 // ...
4206 nulltype
4207 } value;
4208
4209 const char* to_string() const;
4210};
4212
4213// CauseProtocol ::= ENUMERATED
4215 enum options {
4216 transfer_syntax_error,
4217 abstract_syntax_error_reject,
4218 abstract_syntax_error_ignore_and_notify,
4219 msg_not_compatible_with_receiver_state,
4220 semantic_error,
4221 abstract_syntax_error_falsely_constructed_msg,
4222 unspecified,
4223 // ...
4224 nulltype
4225 } value;
4226
4227 const char* to_string() const;
4228};
4230
4231// CauseRadioNetwork ::= ENUMERATED
4233 enum options {
4234 unspecified,
4235 rl_fail_rlc,
4236 unknown_or_already_allocated_gnb_cu_ue_f1ap_id,
4237 unknown_or_already_allocated_gnb_du_ue_f1ap_id,
4238 unknown_or_inconsistent_pair_of_ue_f1ap_id,
4239 interaction_with_other_proc,
4240 not_supported_qci_value,
4241 action_desirable_for_radio_reasons,
4242 no_radio_res_available,
4243 proc_cancelled,
4244 normal_release,
4245 // ...
4246 cell_not_available,
4247 rl_fail_others,
4248 ue_rejection,
4249 res_not_available_for_the_slice,
4250 amf_initiated_abnormal_release,
4251 release_due_to_pre_emption,
4252 plmn_not_served_by_the_gnb_cu,
4253 multiple_drb_id_instances,
4254 unknown_drb_id,
4255 multiple_bh_rlc_ch_id_instances,
4256 unknown_bh_rlc_ch_id,
4257 cho_cpc_res_tobechanged,
4258 npn_not_supported,
4259 npn_access_denied,
4260 gnb_cu_cell_capacity_exceeded,
4261 report_characteristics_empty,
4262 existing_meas_id,
4263 meas_temporarily_not_available,
4264 meas_not_supported_for_the_obj,
4265 unknown_bh_address,
4266 unknown_bap_routing_id,
4267 insufficient_ue_cap,
4268 scg_activation_deactivation_fail,
4269 scg_deactivation_fail_due_to_data_tx,
4270 requested_item_not_supported_on_time,
4271 unknown_or_already_allocated_gnb_cu_mbs_f1ap_id,
4272 unknown_or_already_allocated_gnb_du_mbs_f1ap_id,
4273 unknown_or_inconsistent_pair_of_mbs_f1ap_id,
4274 unknown_or_inconsistent_mrb_id,
4275 tat_sdt_expiry,
4276 nulltype
4277 } value;
4278
4279 const char* to_string() const;
4280};
4282
4283// CauseTransport ::= ENUMERATED
4285 enum options {
4286 unspecified,
4287 transport_res_unavailable,
4288 // ...
4289 unknown_tnl_address_for_iab,
4290 unknown_up_tnl_info_for_iab,
4291 nulltype
4292 } value;
4293
4294 const char* to_string() const;
4295};
4297
4298// Cause ::= CHOICE
4299struct cause_c {
4300 struct types_opts {
4301 enum options { radio_network, transport, protocol, misc, choice_ext, nulltype } value;
4302 typedef uint8_t number_type;
4303
4304 const char* to_string() const;
4305 uint8_t to_number() const;
4306 };
4308
4309 // choice methods
4310 cause_c() = default;
4311 cause_c(const cause_c& other);
4312 cause_c& operator=(const cause_c& other);
4313 ~cause_c() { destroy_(); }
4314 void set(types::options e = types::nulltype);
4315 types type() const { return type_; }
4316 SRSASN_CODE pack(bit_ref& bref) const;
4317 SRSASN_CODE unpack(cbit_ref& bref);
4318 void to_json(json_writer& j) const;
4319 // getters
4320 cause_radio_network_e& radio_network()
4321 {
4322 assert_choice_type(types::radio_network, type_, "Cause");
4323 return c.get<cause_radio_network_e>();
4324 }
4325 cause_transport_e& transport()
4326 {
4327 assert_choice_type(types::transport, type_, "Cause");
4328 return c.get<cause_transport_e>();
4329 }
4330 cause_protocol_e& protocol()
4331 {
4332 assert_choice_type(types::protocol, type_, "Cause");
4333 return c.get<cause_protocol_e>();
4334 }
4335 cause_misc_e& misc()
4336 {
4337 assert_choice_type(types::misc, type_, "Cause");
4338 return c.get<cause_misc_e>();
4339 }
4340 protocol_ie_single_container_s<cause_ext_ies_o>& choice_ext()
4341 {
4342 assert_choice_type(types::choice_ext, type_, "Cause");
4343 return c.get<protocol_ie_single_container_s<cause_ext_ies_o>>();
4344 }
4345 const cause_radio_network_e& radio_network() const
4346 {
4347 assert_choice_type(types::radio_network, type_, "Cause");
4348 return c.get<cause_radio_network_e>();
4349 }
4350 const cause_transport_e& transport() const
4351 {
4352 assert_choice_type(types::transport, type_, "Cause");
4353 return c.get<cause_transport_e>();
4354 }
4355 const cause_protocol_e& protocol() const
4356 {
4357 assert_choice_type(types::protocol, type_, "Cause");
4358 return c.get<cause_protocol_e>();
4359 }
4360 const cause_misc_e& misc() const
4361 {
4362 assert_choice_type(types::misc, type_, "Cause");
4363 return c.get<cause_misc_e>();
4364 }
4365 const protocol_ie_single_container_s<cause_ext_ies_o>& choice_ext() const
4366 {
4367 assert_choice_type(types::choice_ext, type_, "Cause");
4368 return c.get<protocol_ie_single_container_s<cause_ext_ies_o>>();
4369 }
4370 cause_radio_network_e& set_radio_network();
4371 cause_transport_e& set_transport();
4372 cause_protocol_e& set_protocol();
4373 cause_misc_e& set_misc();
4374 protocol_ie_single_container_s<cause_ext_ies_o>& set_choice_ext();
4375
4376private:
4377 types type_;
4378 choice_buffer_t<protocol_ie_single_container_s<cause_ext_ies_o>> c;
4379
4380 void destroy_();
4381};
4382
4383// TimeToWait ::= ENUMERATED
4385 enum options { v1s, v2s, v5s, v10s, v20s, v60s, /*...*/ nulltype } value;
4386 typedef uint8_t number_type;
4387
4388 const char* to_string() const;
4389 uint8_t to_number() const;
4390};
4392
4393// LocationDependentMBSF1UInformation-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4395
4397
4398// LocationDependentMBSF1UInformation-Item ::= SEQUENCE
4400 bool ext = false;
4401 bool ie_exts_present = false;
4402 uint32_t mbs_area_session_id = 0;
4403 up_transport_layer_info_c mbs_f1u_info_at_cu;
4405 // ...
4406
4407 // sequence methods
4408 SRSASN_CODE pack(bit_ref& bref) const;
4409 SRSASN_CODE unpack(cbit_ref& bref);
4410 void to_json(json_writer& j) const;
4411};
4412
4413// MBSF1UInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4415
4416// BCBearerContextF1U-TNLInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
4418
4419// LocationDependentMBSF1UInformation ::= SEQUENCE (SIZE (1..256)) OF LocationDependentMBSF1UInformation-Item
4421
4423
4424// MBSF1UInformation ::= SEQUENCE
4426 bool ext = false;
4427 bool ie_exts_present = false;
4428 up_transport_layer_info_c mbs_f1u_info;
4430 // ...
4431
4432 // sequence methods
4433 SRSASN_CODE pack(bit_ref& bref) const;
4434 SRSASN_CODE unpack(cbit_ref& bref);
4435 void to_json(json_writer& j) const;
4436};
4437
4438// BCBearerContextF1U-TNLInfo ::= CHOICE
4440 struct types_opts {
4441 enum options { locationindpendent, locationdependent, choice_ext, nulltype } value;
4442
4443 const char* to_string() const;
4444 };
4446
4447 // choice methods
4451 ~bc_bearer_context_f1_u_tnl_info_c() { destroy_(); }
4452 void set(types::options e = types::nulltype);
4453 types type() const { return type_; }
4454 SRSASN_CODE pack(bit_ref& bref) const;
4455 SRSASN_CODE unpack(cbit_ref& bref);
4456 void to_json(json_writer& j) const;
4457 // getters
4458 mbsf1_u_info_s& locationindpendent()
4459 {
4460 assert_choice_type(types::locationindpendent, type_, "BCBearerContextF1U-TNLInfo");
4461 return c.get<mbsf1_u_info_s>();
4462 }
4463 location_dependent_mbsf1_u_info_l& locationdependent()
4464 {
4465 assert_choice_type(types::locationdependent, type_, "BCBearerContextF1U-TNLInfo");
4466 return c.get<location_dependent_mbsf1_u_info_l>();
4467 }
4468 protocol_ie_single_container_s<bc_bearer_context_f1_u_tnl_info_ext_ies_o>& choice_ext()
4469 {
4470 assert_choice_type(types::choice_ext, type_, "BCBearerContextF1U-TNLInfo");
4471 return c.get<protocol_ie_single_container_s<bc_bearer_context_f1_u_tnl_info_ext_ies_o>>();
4472 }
4473 const mbsf1_u_info_s& locationindpendent() const
4474 {
4475 assert_choice_type(types::locationindpendent, type_, "BCBearerContextF1U-TNLInfo");
4476 return c.get<mbsf1_u_info_s>();
4477 }
4478 const location_dependent_mbsf1_u_info_l& locationdependent() const
4479 {
4480 assert_choice_type(types::locationdependent, type_, "BCBearerContextF1U-TNLInfo");
4481 return c.get<location_dependent_mbsf1_u_info_l>();
4482 }
4483 const protocol_ie_single_container_s<bc_bearer_context_f1_u_tnl_info_ext_ies_o>& choice_ext() const
4484 {
4485 assert_choice_type(types::choice_ext, type_, "BCBearerContextF1U-TNLInfo");
4486 return c.get<protocol_ie_single_container_s<bc_bearer_context_f1_u_tnl_info_ext_ies_o>>();
4487 }
4488 mbsf1_u_info_s& set_locationindpendent();
4489 location_dependent_mbsf1_u_info_l& set_locationdependent();
4490 protocol_ie_single_container_s<bc_bearer_context_f1_u_tnl_info_ext_ies_o>& set_choice_ext();
4491
4492private:
4493 types type_;
4494 choice_buffer_t<location_dependent_mbsf1_u_info_l,
4495 mbsf1_u_info_s,
4496 protocol_ie_single_container_s<bc_bearer_context_f1_u_tnl_info_ext_ies_o>>
4497 c;
4498
4499 void destroy_();
4500};
4501
4502// BHChannels-FailedToBeModified-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4503using bh_chs_failed_to_be_modified_item_ext_ies_o = protocol_ext_empty_o;
4504
4505using bh_chs_failed_to_be_modified_item_ext_ies_container = protocol_ext_container_empty_l;
4506
4507// BHChannels-FailedToBeModified-Item ::= SEQUENCE
4509 bool cause_present = false;
4510 bool ie_exts_present = false;
4512 cause_c cause;
4514
4515 // sequence methods
4516 SRSASN_CODE pack(bit_ref& bref) const;
4517 SRSASN_CODE unpack(cbit_ref& bref);
4518 void to_json(json_writer& j) const;
4519};
4520
4521// BHChannels-FailedToBeSetup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4523
4525
4526// BHChannels-FailedToBeSetup-Item ::= SEQUENCE
4528 bool cause_present = false;
4529 bool ie_exts_present = false;
4531 cause_c cause;
4533
4534 // sequence methods
4535 SRSASN_CODE pack(bit_ref& bref) const;
4536 SRSASN_CODE unpack(cbit_ref& bref);
4537 void to_json(json_writer& j) const;
4538};
4539
4540// BHChannels-FailedToBeSetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4542
4544
4545// BHChannels-FailedToBeSetupMod-Item ::= SEQUENCE
4547 bool cause_present = false;
4548 bool ie_exts_present = false;
4550 cause_c cause;
4552
4553 // sequence methods
4554 SRSASN_CODE pack(bit_ref& bref) const;
4555 SRSASN_CODE unpack(cbit_ref& bref);
4556 void to_json(json_writer& j) const;
4557};
4558
4559// BHChannels-Modified-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4561
4563
4564// BHChannels-Modified-Item ::= SEQUENCE
4566 bool ie_exts_present = false;
4569
4570 // sequence methods
4571 SRSASN_CODE pack(bit_ref& bref) const;
4572 SRSASN_CODE unpack(cbit_ref& bref);
4573 void to_json(json_writer& j) const;
4574};
4575
4576// BHChannels-Required-ToBeReleased-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4578
4580
4581// BHChannels-Required-ToBeReleased-Item ::= SEQUENCE
4583 bool ie_exts_present = false;
4586
4587 // sequence methods
4588 SRSASN_CODE pack(bit_ref& bref) const;
4589 SRSASN_CODE unpack(cbit_ref& bref);
4590 void to_json(json_writer& j) const;
4591};
4592
4593// BHChannels-Setup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4595
4597
4598// BHChannels-Setup-Item ::= SEQUENCE
4600 bool ie_exts_present = false;
4603
4604 // sequence methods
4605 SRSASN_CODE pack(bit_ref& bref) const;
4606 SRSASN_CODE unpack(cbit_ref& bref);
4607 void to_json(json_writer& j) const;
4608};
4609
4610// BHChannels-SetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4612
4614
4615// BHChannels-SetupMod-Item ::= SEQUENCE
4617 bool ie_exts_present = false;
4620
4621 // sequence methods
4622 SRSASN_CODE pack(bit_ref& bref) const;
4623 SRSASN_CODE unpack(cbit_ref& bref);
4624 void to_json(json_writer& j) const;
4625};
4626
4627// Dynamic5QIDescriptor-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4629 // Extension ::= OPEN TYPE
4630 struct ext_c {
4631 struct types_opts {
4632 enum options {
4633 extended_packet_delay_budget,
4634 cn_packet_delay_budget_dl,
4635 cn_packet_delay_budget_ul,
4636 nulltype
4637 } value;
4638
4639 const char* to_string() const;
4640 };
4642
4643 // choice methods
4644 ext_c() = default;
4645 void set(types::options e = types::nulltype);
4646 types type() const { return type_; }
4647 SRSASN_CODE pack(bit_ref& bref) const;
4648 SRSASN_CODE unpack(cbit_ref& bref);
4649 void to_json(json_writer& j) const;
4650 // getters
4651 uint32_t& extended_packet_delay_budget();
4652 uint32_t& cn_packet_delay_budget_dl();
4653 uint32_t& cn_packet_delay_budget_ul();
4654 const uint32_t& extended_packet_delay_budget() const;
4655 const uint32_t& cn_packet_delay_budget_dl() const;
4656 const uint32_t& cn_packet_delay_budget_ul() const;
4657
4658 private:
4659 types type_;
4661 };
4662
4663 // members lookup methods
4664 static uint32_t idx_to_id(uint32_t idx);
4665 static bool is_id_valid(const uint32_t& id);
4666 static crit_e get_crit(const uint32_t& id);
4667 static ext_c get_ext(const uint32_t& id);
4668 static presence_e get_presence(const uint32_t& id);
4669};
4670
4671// NonDynamic5QIDescriptor-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4673 // Extension ::= OPEN TYPE
4674 struct ext_c {
4675 struct types_opts {
4676 enum options { cn_packet_delay_budget_dl, cn_packet_delay_budget_ul, nulltype } value;
4677
4678 const char* to_string() const;
4679 };
4681
4682 // choice methods
4683 ext_c() = default;
4684 void set(types::options e = types::nulltype);
4685 types type() const { return type_; }
4686 SRSASN_CODE pack(bit_ref& bref) const;
4687 SRSASN_CODE unpack(cbit_ref& bref);
4688 void to_json(json_writer& j) const;
4689 // getters
4690 uint32_t& cn_packet_delay_budget_dl();
4691 uint32_t& cn_packet_delay_budget_ul();
4692 const uint32_t& cn_packet_delay_budget_dl() const;
4693 const uint32_t& cn_packet_delay_budget_ul() const;
4694
4695 private:
4696 types type_;
4698 };
4699
4700 // members lookup methods
4701 static uint32_t idx_to_id(uint32_t idx);
4702 static bool is_id_valid(const uint32_t& id);
4703 static crit_e get_crit(const uint32_t& id);
4704 static ext_c get_ext(const uint32_t& id);
4705 static presence_e get_presence(const uint32_t& id);
4706};
4707
4709 bool extended_packet_delay_budget_present = false;
4710 bool cn_packet_delay_budget_dl_present = false;
4711 bool cn_packet_delay_budget_ul_present = false;
4712 uint32_t extended_packet_delay_budget;
4713 uint32_t cn_packet_delay_budget_dl;
4714 uint32_t cn_packet_delay_budget_ul;
4715
4716 // sequence methods
4717 SRSASN_CODE pack(bit_ref& bref) const;
4718 SRSASN_CODE unpack(cbit_ref& bref);
4719 void to_json(json_writer& j) const;
4720};
4721
4722// Dynamic5QIDescriptor ::= SEQUENCE
4725 enum options { delay_crit, non_delay_crit, nulltype } value;
4726
4727 const char* to_string() const;
4728 };
4730
4731 // member variables
4732 bool five_qi_present = false;
4733 bool delay_crit_present = false;
4734 bool averaging_win_present = false;
4735 bool max_data_burst_volume_present = false;
4736 bool ie_exts_present = false;
4737 uint8_t qos_prio_level = 1;
4738 uint16_t packet_delay_budget = 0;
4739 packet_error_rate_s packet_error_rate;
4740 uint16_t five_qi = 0;
4741 delay_crit_e_ delay_crit;
4742 uint16_t averaging_win = 0;
4743 uint16_t max_data_burst_volume = 0;
4745
4746 // sequence methods
4747 SRSASN_CODE pack(bit_ref& bref) const;
4748 SRSASN_CODE unpack(cbit_ref& bref);
4749 void to_json(json_writer& j) const;
4750};
4751
4752// GBR-QosFlowInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4754 // Extension ::= OPEN TYPE
4755 struct ext_c {
4756 struct types_opts {
4757 enum options { alt_qos_para_set_list, nulltype } value;
4758
4759 const char* to_string() const;
4760 };
4762
4763 // choice methods
4764 types type() const { return types::alt_qos_para_set_list; }
4765 SRSASN_CODE pack(bit_ref& bref) const;
4766 SRSASN_CODE unpack(cbit_ref& bref);
4767 void to_json(json_writer& j) const;
4768 // getters
4769 alt_qos_para_set_list_l& alt_qos_para_set_list() { return c; }
4770 const alt_qos_para_set_list_l& alt_qos_para_set_list() const { return c; }
4771
4772 private:
4773 alt_qos_para_set_list_l c;
4774 };
4775
4776 // members lookup methods
4777 static uint32_t idx_to_id(uint32_t idx);
4778 static bool is_id_valid(const uint32_t& id);
4779 static crit_e get_crit(const uint32_t& id);
4780 static ext_c get_ext(const uint32_t& id);
4781 static presence_e get_presence(const uint32_t& id);
4782};
4783
4784// GBR-QosInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4785using gbr_qos_info_ext_ies_o = protocol_ext_empty_o;
4786
4787// NGRANAllocationAndRetentionPriority-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4788using ngran_alloc_and_retention_prio_ext_ies_o = protocol_ext_empty_o;
4789
4791 bool cn_packet_delay_budget_dl_present = false;
4792 bool cn_packet_delay_budget_ul_present = false;
4793 uint32_t cn_packet_delay_budget_dl;
4794 uint32_t cn_packet_delay_budget_ul;
4795
4796 // sequence methods
4797 SRSASN_CODE pack(bit_ref& bref) const;
4798 SRSASN_CODE unpack(cbit_ref& bref);
4799 void to_json(json_writer& j) const;
4800};
4801
4802// NonDynamic5QIDescriptor ::= SEQUENCE
4804 bool qos_prio_level_present = false;
4805 bool averaging_win_present = false;
4806 bool max_data_burst_volume_present = false;
4807 bool ie_exts_present = false;
4808 uint16_t five_qi = 0;
4809 uint8_t qos_prio_level = 1;
4810 uint16_t averaging_win = 0;
4811 uint16_t max_data_burst_volume = 0;
4813
4814 // sequence methods
4815 SRSASN_CODE pack(bit_ref& bref) const;
4816 SRSASN_CODE unpack(cbit_ref& bref);
4817 void to_json(json_writer& j) const;
4818};
4819
4820// QoS-Characteristics-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
4822
4823// QosMonitoringRequest ::= ENUMERATED
4825 enum options { ul, dl, both, /*...*/ stop, nulltype } value;
4826
4827 const char* to_string() const;
4828};
4830
4831// EUTRANQoS-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4833 // Extension ::= OPEN TYPE
4834 struct ext_c {
4835 struct types_opts {
4836 enum options { enb_dl_tnl_address, nulltype } value;
4837
4838 const char* to_string() const;
4839 };
4841
4842 // choice methods
4843 types type() const { return types::enb_dl_tnl_address; }
4844 SRSASN_CODE pack(bit_ref& bref) const;
4845 SRSASN_CODE unpack(cbit_ref& bref);
4846 void to_json(json_writer& j) const;
4847 // getters
4848 bounded_bitstring<1, 160, true, true>& enb_dl_tnl_address() { return c; }
4849 const bounded_bitstring<1, 160, true, true>& enb_dl_tnl_address() const { return c; }
4850
4851 private:
4853 };
4854
4855 // members lookup methods
4856 static uint32_t idx_to_id(uint32_t idx);
4857 static bool is_id_valid(const uint32_t& id);
4858 static crit_e get_crit(const uint32_t& id);
4859 static ext_c get_ext(const uint32_t& id);
4860 static presence_e get_presence(const uint32_t& id);
4861};
4862
4863// GBR-QoSFlowInformation ::= SEQUENCE
4865 bool ext = false;
4866 bool max_packet_loss_rate_dl_present = false;
4867 bool max_packet_loss_rate_ul_present = false;
4868 uint64_t max_flow_bit_rate_dl = 0;
4869 uint64_t max_flow_bit_rate_ul = 0;
4870 uint64_t guaranteed_flow_bit_rate_dl = 0;
4871 uint64_t guaranteed_flow_bit_rate_ul = 0;
4872 uint16_t max_packet_loss_rate_dl = 0;
4873 uint16_t max_packet_loss_rate_ul = 0;
4875 // ...
4876
4877 // sequence methods
4878 SRSASN_CODE pack(bit_ref& bref) const;
4879 SRSASN_CODE unpack(cbit_ref& bref);
4880 void to_json(json_writer& j) const;
4881};
4882
4884
4885// GBR-QosInformation ::= SEQUENCE
4887 bool ext = false;
4888 bool ie_exts_present = false;
4889 uint64_t erab_max_bitrate_dl = 0;
4890 uint64_t erab_max_bitrate_ul = 0;
4891 uint64_t erab_guaranteed_bitrate_dl = 0;
4892 uint64_t erab_guaranteed_bitrate_ul = 0;
4894 // ...
4895
4896 // sequence methods
4897 SRSASN_CODE pack(bit_ref& bref) const;
4898 SRSASN_CODE unpack(cbit_ref& bref);
4899 void to_json(json_writer& j) const;
4900};
4901
4903
4904// NGRANAllocationAndRetentionPriority ::= SEQUENCE
4906 bool ie_exts_present = false;
4907 uint8_t prio_level = 0;
4908 pre_emption_cap_e pre_emption_cap;
4909 pre_emption_vulnerability_e pre_emption_vulnerability;
4911
4912 // sequence methods
4913 SRSASN_CODE pack(bit_ref& bref) const;
4914 SRSASN_CODE unpack(cbit_ref& bref);
4915 void to_json(json_writer& j) const;
4916};
4917
4918// QoS-Characteristics ::= CHOICE
4920 struct types_opts {
4921 enum options { non_dyn_5qi, dyn_5qi, choice_ext, nulltype } value;
4922
4923 const char* to_string() const;
4924 };
4926
4927 // choice methods
4928 qos_characteristics_c() = default;
4930 qos_characteristics_c& operator=(const qos_characteristics_c& other);
4931 ~qos_characteristics_c() { destroy_(); }
4932 void set(types::options e = types::nulltype);
4933 types type() const { return type_; }
4934 SRSASN_CODE pack(bit_ref& bref) const;
4935 SRSASN_CODE unpack(cbit_ref& bref);
4936 void to_json(json_writer& j) const;
4937 // getters
4938 non_dyn_5qi_descriptor_s& non_dyn_5qi()
4939 {
4940 assert_choice_type(types::non_dyn_5qi, type_, "QoS-Characteristics");
4941 return c.get<non_dyn_5qi_descriptor_s>();
4942 }
4943 dyn_5qi_descriptor_s& dyn_5qi()
4944 {
4945 assert_choice_type(types::dyn_5qi, type_, "QoS-Characteristics");
4946 return c.get<dyn_5qi_descriptor_s>();
4947 }
4948 protocol_ie_single_container_s<qos_characteristics_ext_ies_o>& choice_ext()
4949 {
4950 assert_choice_type(types::choice_ext, type_, "QoS-Characteristics");
4951 return c.get<protocol_ie_single_container_s<qos_characteristics_ext_ies_o>>();
4952 }
4953 const non_dyn_5qi_descriptor_s& non_dyn_5qi() const
4954 {
4955 assert_choice_type(types::non_dyn_5qi, type_, "QoS-Characteristics");
4956 return c.get<non_dyn_5qi_descriptor_s>();
4957 }
4958 const dyn_5qi_descriptor_s& dyn_5qi() const
4959 {
4960 assert_choice_type(types::dyn_5qi, type_, "QoS-Characteristics");
4961 return c.get<dyn_5qi_descriptor_s>();
4962 }
4963 const protocol_ie_single_container_s<qos_characteristics_ext_ies_o>& choice_ext() const
4964 {
4965 assert_choice_type(types::choice_ext, type_, "QoS-Characteristics");
4966 return c.get<protocol_ie_single_container_s<qos_characteristics_ext_ies_o>>();
4967 }
4968 non_dyn_5qi_descriptor_s& set_non_dyn_5qi();
4969 dyn_5qi_descriptor_s& set_dyn_5qi();
4970 protocol_ie_single_container_s<qos_characteristics_ext_ies_o>& set_choice_ext();
4971
4972private:
4973 types type_;
4974 choice_buffer_t<dyn_5qi_descriptor_s,
4975 non_dyn_5qi_descriptor_s,
4976 protocol_ie_single_container_s<qos_characteristics_ext_ies_o>>
4977 c;
4978
4979 void destroy_();
4980};
4981
4982// QoSFlowLevelQoSParameters-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
4984 // Extension ::= OPEN TYPE
4985 struct ext_c {
4986 struct types_opts {
4987 enum options {
4988 pdu_session_id,
4989 ul_pdu_session_aggr_max_bit_rate,
4990 qos_monitoring_request,
4991 pdcp_terminating_node_dl_tnl_addr_info,
4992 nulltype
4993 } value;
4994
4995 const char* to_string() const;
4996 };
4998
4999 // choice methods
5000 ext_c() = default;
5001 void set(types::options e = types::nulltype);
5002 types type() const { return type_; }
5003 SRSASN_CODE pack(bit_ref& bref) const;
5004 SRSASN_CODE unpack(cbit_ref& bref);
5005 void to_json(json_writer& j) const;
5006 // getters
5007 uint16_t& pdu_session_id();
5008 uint64_t& ul_pdu_session_aggr_max_bit_rate();
5009 qos_monitoring_request_e& qos_monitoring_request();
5010 bounded_bitstring<1, 160, true, true>& pdcp_terminating_node_dl_tnl_addr_info();
5011 const uint16_t& pdu_session_id() const;
5012 const uint64_t& ul_pdu_session_aggr_max_bit_rate() const;
5013 const qos_monitoring_request_e& qos_monitoring_request() const;
5014 const bounded_bitstring<1, 160, true, true>& pdcp_terminating_node_dl_tnl_addr_info() const;
5015
5016 private:
5017 types type_;
5019 };
5020
5021 // members lookup methods
5022 static uint32_t idx_to_id(uint32_t idx);
5023 static bool is_id_valid(const uint32_t& id);
5024 static crit_e get_crit(const uint32_t& id);
5025 static ext_c get_ext(const uint32_t& id);
5026 static presence_e get_presence(const uint32_t& id);
5027};
5028
5029// BHQoSInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
5030using bh_qos_info_ext_ies_o = protocol_ies_empty_o;
5031
5032// EUTRANQoS ::= SEQUENCE
5034 bool ext = false;
5035 bool gbr_qos_info_present = false;
5036 uint16_t qci = 0;
5037 alloc_and_retention_prio_s alloc_and_retention_prio;
5038 gbr_qos_info_s gbr_qos_info;
5040 // ...
5041
5042 // sequence methods
5043 SRSASN_CODE pack(bit_ref& bref) const;
5044 SRSASN_CODE unpack(cbit_ref& bref);
5045 void to_json(json_writer& j) const;
5046};
5047
5049 bool pdu_session_id_present = false;
5050 bool ul_pdu_session_aggr_max_bit_rate_present = false;
5051 bool qos_monitoring_request_present = false;
5052 bool pdcp_terminating_node_dl_tnl_addr_info_present = false;
5053 uint16_t pdu_session_id;
5054 uint64_t ul_pdu_session_aggr_max_bit_rate;
5055 qos_monitoring_request_e qos_monitoring_request;
5056 bounded_bitstring<1, 160, true, true> pdcp_terminating_node_dl_tnl_addr_info;
5057
5058 // sequence methods
5059 SRSASN_CODE pack(bit_ref& bref) const;
5060 SRSASN_CODE unpack(cbit_ref& bref);
5061 void to_json(json_writer& j) const;
5062};
5063
5064// QoSFlowLevelQoSParameters ::= SEQUENCE
5067 enum options { subject_to, /*...*/ nulltype } value;
5068
5069 const char* to_string() const;
5070 };
5072
5073 // member variables
5074 bool gbr_qos_flow_info_present = false;
5075 bool reflective_qos_attribute_present = false;
5076 bool ie_exts_present = false;
5077 qos_characteristics_c qos_characteristics;
5078 ngran_alloc_and_retention_prio_s ngra_nalloc_retention_prio;
5079 gbr_qos_flow_info_s gbr_qos_flow_info;
5080 reflective_qos_attribute_e_ reflective_qos_attribute;
5082
5083 // sequence methods
5084 SRSASN_CODE pack(bit_ref& bref) const;
5085 SRSASN_CODE unpack(cbit_ref& bref);
5086 void to_json(json_writer& j) const;
5087};
5088
5089// BAPCtrlPDUChannel ::= ENUMERATED
5091 enum options { true_value, /*...*/ nulltype } value;
5092
5093 const char* to_string() const;
5094};
5096
5097// BHChannels-ToBeModified-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5099
5100// BHQoSInformation ::= CHOICE
5102 struct types_opts {
5103 enum options { bh_rlc_ch_qos, eutran_bh_rlc_ch_qos, cp_traffic_type, choice_ext, nulltype } value;
5104
5105 const char* to_string() const;
5106 };
5108
5109 // choice methods
5110 bh_qos_info_c() = default;
5111 bh_qos_info_c(const bh_qos_info_c& other);
5112 bh_qos_info_c& operator=(const bh_qos_info_c& other);
5113 ~bh_qos_info_c() { destroy_(); }
5114 void set(types::options e = types::nulltype);
5115 types type() const { return type_; }
5116 SRSASN_CODE pack(bit_ref& bref) const;
5117 SRSASN_CODE unpack(cbit_ref& bref);
5118 void to_json(json_writer& j) const;
5119 // getters
5120 qos_flow_level_qos_params_s& bh_rlc_ch_qos()
5121 {
5122 assert_choice_type(types::bh_rlc_ch_qos, type_, "BHQoSInformation");
5123 return c.get<qos_flow_level_qos_params_s>();
5124 }
5125 eutran_qos_s& eutran_bh_rlc_ch_qos()
5126 {
5127 assert_choice_type(types::eutran_bh_rlc_ch_qos, type_, "BHQoSInformation");
5128 return c.get<eutran_qos_s>();
5129 }
5130 uint8_t& cp_traffic_type()
5131 {
5132 assert_choice_type(types::cp_traffic_type, type_, "BHQoSInformation");
5133 return c.get<uint8_t>();
5134 }
5135 protocol_ie_single_container_s<bh_qos_info_ext_ies_o>& choice_ext()
5136 {
5137 assert_choice_type(types::choice_ext, type_, "BHQoSInformation");
5138 return c.get<protocol_ie_single_container_s<bh_qos_info_ext_ies_o>>();
5139 }
5140 const qos_flow_level_qos_params_s& bh_rlc_ch_qos() const
5141 {
5142 assert_choice_type(types::bh_rlc_ch_qos, type_, "BHQoSInformation");
5143 return c.get<qos_flow_level_qos_params_s>();
5144 }
5145 const eutran_qos_s& eutran_bh_rlc_ch_qos() const
5146 {
5147 assert_choice_type(types::eutran_bh_rlc_ch_qos, type_, "BHQoSInformation");
5148 return c.get<eutran_qos_s>();
5149 }
5150 const uint8_t& cp_traffic_type() const
5151 {
5152 assert_choice_type(types::cp_traffic_type, type_, "BHQoSInformation");
5153 return c.get<uint8_t>();
5154 }
5155 const protocol_ie_single_container_s<bh_qos_info_ext_ies_o>& choice_ext() const
5156 {
5157 assert_choice_type(types::choice_ext, type_, "BHQoSInformation");
5158 return c.get<protocol_ie_single_container_s<bh_qos_info_ext_ies_o>>();
5159 }
5160 qos_flow_level_qos_params_s& set_bh_rlc_ch_qos();
5161 eutran_qos_s& set_eutran_bh_rlc_ch_qos();
5162 uint8_t& set_cp_traffic_type();
5163 protocol_ie_single_container_s<bh_qos_info_ext_ies_o>& set_choice_ext();
5164
5165private:
5166 types type_;
5167 choice_buffer_t<eutran_qos_s, protocol_ie_single_container_s<bh_qos_info_ext_ies_o>, qos_flow_level_qos_params_s> c;
5168
5169 void destroy_();
5170};
5171
5172// RLCMode ::= ENUMERATED
5174 enum options {
5175 rlc_am,
5176 rlc_um_bidirectional,
5177 rlc_um_unidirectional_ul,
5178 rlc_um_unidirectional_dl,
5179 /*...*/ nulltype
5180 } value;
5181
5182 const char* to_string() const;
5183};
5185
5187
5188// BHChannels-ToBeModified-Item ::= SEQUENCE
5190 bool rlc_mode_present = false;
5191 bool bap_ctrl_pdu_ch_present = false;
5192 bool traffic_map_info_present = false;
5193 bool ie_exts_present = false;
5195 bh_qos_info_c bh_qos_info;
5196 rlc_mode_e rlc_mode;
5197 bap_ctrl_pdu_ch_e bap_ctrl_pdu_ch;
5198 traffic_map_info_c traffic_map_info;
5200
5201 // sequence methods
5202 SRSASN_CODE pack(bit_ref& bref) const;
5203 SRSASN_CODE unpack(cbit_ref& bref);
5204 void to_json(json_writer& j) const;
5205};
5206
5207// BHChannels-ToBeReleased-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5209
5211
5212// BHChannels-ToBeReleased-Item ::= SEQUENCE
5214 bool ie_exts_present = false;
5217
5218 // sequence methods
5219 SRSASN_CODE pack(bit_ref& bref) const;
5220 SRSASN_CODE unpack(cbit_ref& bref);
5221 void to_json(json_writer& j) const;
5222};
5223
5224// BHChannels-ToBeSetup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5226
5228
5229// BHChannels-ToBeSetup-Item ::= SEQUENCE
5231 bool bap_ctrl_pdu_ch_present = false;
5232 bool traffic_map_info_present = false;
5233 bool ie_exts_present = false;
5235 bh_qos_info_c bh_qos_info;
5236 rlc_mode_e rlc_mode;
5237 bap_ctrl_pdu_ch_e bap_ctrl_pdu_ch;
5238 traffic_map_info_c traffic_map_info;
5240
5241 // sequence methods
5242 SRSASN_CODE pack(bit_ref& bref) const;
5243 SRSASN_CODE unpack(cbit_ref& bref);
5244 void to_json(json_writer& j) const;
5245};
5246
5247// BHChannels-ToBeSetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5249
5251
5252// BHChannels-ToBeSetupMod-Item ::= SEQUENCE
5254 bool bap_ctrl_pdu_ch_present = false;
5255 bool traffic_map_info_present = false;
5256 bool ie_exts_present = false;
5258 bh_qos_info_c bh_qos_info;
5259 rlc_mode_e rlc_mode;
5260 bap_ctrl_pdu_ch_e bap_ctrl_pdu_ch;
5261 traffic_map_info_c traffic_map_info;
5263
5264 // sequence methods
5265 SRSASN_CODE pack(bit_ref& bref) const;
5266 SRSASN_CODE unpack(cbit_ref& bref);
5267 void to_json(json_writer& j) const;
5268};
5269
5270// BHRLCCHItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5272
5274
5275// BHRLCCHItem ::= SEQUENCE
5277 bool ie_exts_present = false;
5280
5281 // sequence methods
5282 SRSASN_CODE pack(bit_ref& bref) const;
5283 SRSASN_CODE unpack(cbit_ref& bref);
5284 void to_json(json_writer& j) const;
5285};
5286
5287// BHRLCCHList ::= SEQUENCE (SIZE (1..65536)) OF BHRLCCHItem
5289
5290// BroadcastCAGList ::= SEQUENCE (SIZE (1..12)) OF BIT STRING (SIZE (32))
5292
5293// BroadcastPNI-NPN-ID-List-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5295
5296// BroadcastSNPN-ID-List-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5298
5300
5301// BroadcastPNI-NPN-ID-List-Item ::= SEQUENCE
5303 bool ext = false;
5304 bool ie_exts_present = false;
5306 broadcast_cag_list_l broadcast_cag_list;
5308 // ...
5309
5310 // sequence methods
5311 SRSASN_CODE pack(bit_ref& bref) const;
5312 SRSASN_CODE unpack(cbit_ref& bref);
5313 void to_json(json_writer& j) const;
5314};
5315
5317
5318// BroadcastSNPN-ID-List-Item ::= SEQUENCE
5320 bool ext = false;
5321 bool ie_exts_present = false;
5323 broadcast_n_id_list_l broadcast_n_id_list;
5325 // ...
5326
5327 // sequence methods
5328 SRSASN_CODE pack(bit_ref& bref) const;
5329 SRSASN_CODE unpack(cbit_ref& bref);
5330 void to_json(json_writer& j) const;
5331};
5332
5333// BroadcastPNI-NPN-ID-List ::= SEQUENCE (SIZE (1..12)) OF BroadcastPNI-NPN-ID-List-Item
5335
5336// BroadcastSNPN-ID-List ::= SEQUENCE (SIZE (1..12)) OF BroadcastSNPN-ID-List-Item
5338
5339// NPN-Broadcast-Information-PNI-NPN-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5341
5342// NPN-Broadcast-Information-SNPN-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5344
5345// ExtendedAvailablePLMN-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5347
5349
5350// NPN-Broadcast-Information-PNI-NPN ::= SEQUENCE
5352 bool ext = false;
5353 bool ie_ext_present = false;
5354 broadcast_pni_npn_id_list_l broadcast_pni_npn_id_info;
5356 // ...
5357
5358 // sequence methods
5359 SRSASN_CODE pack(bit_ref& bref) const;
5360 SRSASN_CODE unpack(cbit_ref& bref);
5361 void to_json(json_writer& j) const;
5362};
5363
5365
5366// NPN-Broadcast-Information-SNPN ::= SEQUENCE
5368 bool ext = false;
5369 bool ie_ext_present = false;
5370 broadcast_sn_pn_id_list_l broadcast_sn_pn_id_list;
5372 // ...
5373
5374 // sequence methods
5375 SRSASN_CODE pack(bit_ref& bref) const;
5376 SRSASN_CODE unpack(cbit_ref& bref);
5377 void to_json(json_writer& j) const;
5378};
5379
5380// NPNBroadcastInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
5382
5383// ConfiguredTACIndication ::= ENUMERATED
5385 enum options { true_value, /*...*/ nulltype } value;
5386
5387 const char* to_string() const;
5388};
5390
5392
5393// ExtendedAvailablePLMN-Item ::= SEQUENCE
5395 bool ie_exts_present = false;
5398
5399 // sequence methods
5400 SRSASN_CODE pack(bit_ref& bref) const;
5401 SRSASN_CODE unpack(cbit_ref& bref);
5402 void to_json(json_writer& j) const;
5403};
5404
5405// NPNBroadcastInformation ::= CHOICE
5407 struct types_opts {
5408 enum options { sn_pn_broadcast_info, pni_npn_broadcast_info, choice_ext, nulltype } value;
5409
5410 const char* to_string() const;
5411 };
5413
5414 // choice methods
5415 npn_broadcast_info_c() = default;
5417 npn_broadcast_info_c& operator=(const npn_broadcast_info_c& other);
5418 ~npn_broadcast_info_c() { destroy_(); }
5419 void set(types::options e = types::nulltype);
5420 types type() const { return type_; }
5421 SRSASN_CODE pack(bit_ref& bref) const;
5422 SRSASN_CODE unpack(cbit_ref& bref);
5423 void to_json(json_writer& j) const;
5424 // getters
5425 npn_broadcast_info_sn_pn_s& sn_pn_broadcast_info()
5426 {
5427 assert_choice_type(types::sn_pn_broadcast_info, type_, "NPNBroadcastInformation");
5428 return c.get<npn_broadcast_info_sn_pn_s>();
5429 }
5430 npn_broadcast_info_pni_npn_s& pni_npn_broadcast_info()
5431 {
5432 assert_choice_type(types::pni_npn_broadcast_info, type_, "NPNBroadcastInformation");
5433 return c.get<npn_broadcast_info_pni_npn_s>();
5434 }
5435 protocol_ie_single_container_s<npn_broadcast_info_ext_ies_o>& choice_ext()
5436 {
5437 assert_choice_type(types::choice_ext, type_, "NPNBroadcastInformation");
5438 return c.get<protocol_ie_single_container_s<npn_broadcast_info_ext_ies_o>>();
5439 }
5440 const npn_broadcast_info_sn_pn_s& sn_pn_broadcast_info() const
5441 {
5442 assert_choice_type(types::sn_pn_broadcast_info, type_, "NPNBroadcastInformation");
5443 return c.get<npn_broadcast_info_sn_pn_s>();
5444 }
5445 const npn_broadcast_info_pni_npn_s& pni_npn_broadcast_info() const
5446 {
5447 assert_choice_type(types::pni_npn_broadcast_info, type_, "NPNBroadcastInformation");
5448 return c.get<npn_broadcast_info_pni_npn_s>();
5449 }
5450 const protocol_ie_single_container_s<npn_broadcast_info_ext_ies_o>& choice_ext() const
5451 {
5452 assert_choice_type(types::choice_ext, type_, "NPNBroadcastInformation");
5453 return c.get<protocol_ie_single_container_s<npn_broadcast_info_ext_ies_o>>();
5454 }
5455 npn_broadcast_info_sn_pn_s& set_sn_pn_broadcast_info();
5456 npn_broadcast_info_pni_npn_s& set_pni_npn_broadcast_info();
5457 protocol_ie_single_container_s<npn_broadcast_info_ext_ies_o>& set_choice_ext();
5458
5459private:
5460 types type_;
5461 choice_buffer_t<npn_broadcast_info_pni_npn_s,
5462 npn_broadcast_info_sn_pn_s,
5463 protocol_ie_single_container_s<npn_broadcast_info_ext_ies_o>>
5464 c;
5465
5466 void destroy_();
5467};
5468
5469// BPLMN-ID-Info-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5471 // Extension ::= OPEN TYPE
5472 struct ext_c {
5473 struct types_opts {
5474 enum options { cfg_tac_ind, npn_broadcast_info, nulltype } value;
5475
5476 const char* to_string() const;
5477 };
5479
5480 // choice methods
5481 ext_c() = default;
5482 void set(types::options e = types::nulltype);
5483 types type() const { return type_; }
5484 SRSASN_CODE pack(bit_ref& bref) const;
5485 SRSASN_CODE unpack(cbit_ref& bref);
5486 void to_json(json_writer& j) const;
5487 // getters
5488 cfg_tac_ind_e& cfg_tac_ind();
5489 npn_broadcast_info_c& npn_broadcast_info();
5490 const cfg_tac_ind_e& cfg_tac_ind() const;
5491 const npn_broadcast_info_c& npn_broadcast_info() const;
5492
5493 private:
5494 types type_;
5496 };
5497
5498 // members lookup methods
5499 static uint32_t idx_to_id(uint32_t idx);
5500 static bool is_id_valid(const uint32_t& id);
5501 static crit_e get_crit(const uint32_t& id);
5502 static ext_c get_ext(const uint32_t& id);
5503 static presence_e get_presence(const uint32_t& id);
5504};
5505
5506// ExtendedAvailablePLMN-List ::= SEQUENCE (SIZE (1..6)) OF ExtendedAvailablePLMN-Item
5507using extended_available_plmn_list_l = dyn_array<extended_available_plmn_item_s>;
5508
5510 bool cfg_tac_ind_present = false;
5511 bool npn_broadcast_info_present = false;
5512 cfg_tac_ind_e cfg_tac_ind;
5513 npn_broadcast_info_c npn_broadcast_info;
5514
5515 // sequence methods
5516 SRSASN_CODE pack(bit_ref& bref) const;
5517 SRSASN_CODE unpack(cbit_ref& bref);
5518 void to_json(json_writer& j) const;
5519};
5520
5521// BPLMN-ID-Info-Item ::= SEQUENCE
5523 bool ext = false;
5524 bool five_gs_tac_present = false;
5525 bool ranac_present = false;
5526 bool ie_exts_present = false;
5527 available_plmn_list_l plmn_id_list;
5528 extended_available_plmn_list_l extended_plmn_id_list;
5529 fixed_octstring<3, true> five_gs_tac;
5531 uint16_t ranac = 0;
5533 // ...
5534
5535 // sequence methods
5536 SRSASN_CODE pack(bit_ref& bref) const;
5537 SRSASN_CODE unpack(cbit_ref& bref);
5538 void to_json(json_writer& j) const;
5539};
5540
5541// BPLMN-ID-Info-List ::= SEQUENCE (SIZE (1..12)) OF BPLMN-ID-Info-Item
5543
5544// BandwidthSRS-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
5546
5547// FR1-Bandwidth ::= ENUMERATED
5549 enum options { bw5, bw10, bw20, bw40, bw50, bw80, bw100, /*...*/ nulltype } value;
5550 typedef uint8_t number_type;
5551
5552 const char* to_string() const;
5553 uint8_t to_number() const;
5554};
5556
5557// FR2-Bandwidth ::= ENUMERATED
5559 enum options { bw50, bw100, bw200, bw400, /*...*/ bw800, bw1600, bw2000, nulltype } value;
5560 typedef uint16_t number_type;
5561
5562 const char* to_string() const;
5563 uint16_t to_number() const;
5564};
5566
5567// BandwidthSRS ::= CHOICE
5568struct bw_srs_c {
5569 struct types_opts {
5570 enum options { fr1, fr2, choice_ext, nulltype } value;
5571 typedef uint8_t number_type;
5572
5573 const char* to_string() const;
5574 uint8_t to_number() const;
5575 };
5577
5578 // choice methods
5579 bw_srs_c() = default;
5580 bw_srs_c(const bw_srs_c& other);
5581 bw_srs_c& operator=(const bw_srs_c& other);
5582 ~bw_srs_c() { destroy_(); }
5583 void set(types::options e = types::nulltype);
5584 types type() const { return type_; }
5585 SRSASN_CODE pack(bit_ref& bref) const;
5586 SRSASN_CODE unpack(cbit_ref& bref);
5587 void to_json(json_writer& j) const;
5588 // getters
5589 fr1_bw_e& fr1()
5590 {
5591 assert_choice_type(types::fr1, type_, "BandwidthSRS");
5592 return c.get<fr1_bw_e>();
5593 }
5594 fr2_bw_e& fr2()
5595 {
5596 assert_choice_type(types::fr2, type_, "BandwidthSRS");
5597 return c.get<fr2_bw_e>();
5598 }
5599 protocol_ie_single_container_s<bw_srs_ext_ies_o>& choice_ext()
5600 {
5601 assert_choice_type(types::choice_ext, type_, "BandwidthSRS");
5602 return c.get<protocol_ie_single_container_s<bw_srs_ext_ies_o>>();
5603 }
5604 const fr1_bw_e& fr1() const
5605 {
5606 assert_choice_type(types::fr1, type_, "BandwidthSRS");
5607 return c.get<fr1_bw_e>();
5608 }
5609 const fr2_bw_e& fr2() const
5610 {
5611 assert_choice_type(types::fr2, type_, "BandwidthSRS");
5612 return c.get<fr2_bw_e>();
5613 }
5614 const protocol_ie_single_container_s<bw_srs_ext_ies_o>& choice_ext() const
5615 {
5616 assert_choice_type(types::choice_ext, type_, "BandwidthSRS");
5617 return c.get<protocol_ie_single_container_s<bw_srs_ext_ies_o>>();
5618 }
5619 fr1_bw_e& set_fr1();
5620 fr2_bw_e& set_fr2();
5621 protocol_ie_single_container_s<bw_srs_ext_ies_o>& set_choice_ext();
5622
5623private:
5624 types type_;
5625 choice_buffer_t<protocol_ie_single_container_s<bw_srs_ext_ies_o>> c;
5626
5627 void destroy_();
5628};
5629
5630// Broadcast-Cell-List-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5631using broadcast_cell_list_item_ext_ies_o = protocol_ext_empty_o;
5632
5633using broadcast_cell_list_item_ext_ies_container = protocol_ext_container_empty_l;
5634
5635// Broadcast-Cell-List-Item ::= SEQUENCE
5637 bool ext = false;
5638 bool ie_exts_present = false;
5639 nr_cgi_s cell_id;
5641 // ...
5642
5643 // sequence methods
5644 SRSASN_CODE pack(bit_ref& bref) const;
5645 SRSASN_CODE unpack(cbit_ref& bref);
5646 void to_json(json_writer& j) const;
5647};
5648
5649// Broadcast-To-Be-Cancelled-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5651
5653
5654// Broadcast-To-Be-Cancelled-Item ::= SEQUENCE
5656 bool ext = false;
5657 bool ie_exts_present = false;
5658 nr_cgi_s nr_cgi;
5660 // ...
5661
5662 // sequence methods
5663 SRSASN_CODE pack(bit_ref& bref) const;
5664 SRSASN_CODE unpack(cbit_ref& bref);
5665 void to_json(json_writer& j) const;
5666};
5667
5668// BroadcastCellList ::= SEQUENCE (SIZE (1..512)) OF Broadcast-Cell-List-Item
5670
5671// PartialSuccessCell-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5673
5674// BroadcastAreaScope-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
5676
5678
5679// PartialSuccessCell ::= SEQUENCE
5681 bool ext = false;
5682 bool ie_exts_present = false;
5683 broadcast_cell_list_l broadcast_cell_list;
5685 // ...
5686
5687 // sequence methods
5688 SRSASN_CODE pack(bit_ref& bref) const;
5689 SRSASN_CODE unpack(cbit_ref& bref);
5690 void to_json(json_writer& j) const;
5691};
5692
5693// BroadcastAreaScope ::= CHOICE
5695 struct types_opts {
5696 enum options { complete_success, partial_success, choice_ext, nulltype } value;
5697
5698 const char* to_string() const;
5699 };
5701
5702 // choice methods
5703 broadcast_area_scope_c() = default;
5705 broadcast_area_scope_c& operator=(const broadcast_area_scope_c& other);
5706 ~broadcast_area_scope_c() { destroy_(); }
5707 void set(types::options e = types::nulltype);
5708 types type() const { return type_; }
5709 SRSASN_CODE pack(bit_ref& bref) const;
5710 SRSASN_CODE unpack(cbit_ref& bref);
5711 void to_json(json_writer& j) const;
5712 // getters
5713 partial_success_cell_s& partial_success()
5714 {
5715 assert_choice_type(types::partial_success, type_, "BroadcastAreaScope");
5716 return c.get<partial_success_cell_s>();
5717 }
5718 protocol_ie_single_container_s<broadcast_area_scope_ext_ies_o>& choice_ext()
5719 {
5720 assert_choice_type(types::choice_ext, type_, "BroadcastAreaScope");
5721 return c.get<protocol_ie_single_container_s<broadcast_area_scope_ext_ies_o>>();
5722 }
5723 const partial_success_cell_s& partial_success() const
5724 {
5725 assert_choice_type(types::partial_success, type_, "BroadcastAreaScope");
5726 return c.get<partial_success_cell_s>();
5727 }
5728 const protocol_ie_single_container_s<broadcast_area_scope_ext_ies_o>& choice_ext() const
5729 {
5730 assert_choice_type(types::choice_ext, type_, "BroadcastAreaScope");
5731 return c.get<protocol_ie_single_container_s<broadcast_area_scope_ext_ies_o>>();
5732 }
5733 void set_complete_success();
5734 partial_success_cell_s& set_partial_success();
5735 protocol_ie_single_container_s<broadcast_area_scope_ext_ies_o>& set_choice_ext();
5736
5737private:
5738 types type_;
5739 choice_buffer_t<partial_success_cell_s, protocol_ie_single_container_s<broadcast_area_scope_ext_ies_o>> c;
5740
5741 void destroy_();
5742};
5743
5744// MBS-ServiceAreaTAIList-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5745using mbs_service_area_tai_list_item_ext_ies_o = protocol_ext_empty_o;
5746
5747// MBS-Flows-Mapped-To-MRB-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5748using mbs_flows_mapped_to_mrb_item_ext_ies_o = protocol_ext_empty_o;
5749
5750using mbs_service_area_tai_list_item_ext_ies_container = protocol_ext_container_empty_l;
5751
5752// MBS-ServiceAreaTAIList-Item ::= SEQUENCE
5754 bool ext = false;
5755 bool ie_exts_present = false;
5757 fixed_octstring<3, true> five5_tac;
5759 // ...
5760
5761 // sequence methods
5762 SRSASN_CODE pack(bit_ref& bref) const;
5763 SRSASN_CODE unpack(cbit_ref& bref);
5764 void to_json(json_writer& j) const;
5765};
5766
5768
5769// MBS-Flows-Mapped-To-MRB-Item ::= SEQUENCE
5771 bool ie_exts_present = false;
5772 uint8_t mbs_qos_flow_id = 0;
5773 qos_flow_level_qos_params_s mbs_qos_flow_level_qos_params;
5775
5776 // sequence methods
5777 SRSASN_CODE pack(bit_ref& bref) const;
5778 SRSASN_CODE unpack(cbit_ref& bref);
5779 void to_json(json_writer& j) const;
5780};
5781
5782// MBS-ServiceAreaCellList ::= SEQUENCE (SIZE (1..512)) OF NRCGI
5784
5785// MBS-ServiceAreaInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5787
5788// MBS-ServiceAreaTAIList ::= SEQUENCE (SIZE (1..512)) OF MBS-ServiceAreaTAIList-Item
5790
5791// BroadcastMRBs-ToBeModified-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5793
5794// BroadcastMRBs-ToBeReleased-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5796
5797// BroadcastMRBs-ToBeSetupMod-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5799
5800// MBS-Broadcast-Cell-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5802
5803// MBS-Broadcast-MRB-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5805
5806// MBS-Flows-Mapped-To-MRB-List ::= SEQUENCE (SIZE (1..64)) OF MBS-Flows-Mapped-To-MRB-Item
5808
5810
5811// MBS-ServiceAreaInformation ::= SEQUENCE
5813 bool ext = false;
5814 bool ie_exts_present = false;
5815 mbs_service_area_cell_list_l mbs_service_area_cell_list;
5816 mbs_service_area_tai_list_l mbs_service_area_tai_list;
5818 // ...
5819
5820 // sequence methods
5821 SRSASN_CODE pack(bit_ref& bref) const;
5822 SRSASN_CODE unpack(cbit_ref& bref);
5823 void to_json(json_writer& j) const;
5824};
5825
5826// MBS-ServiceAreaInformationItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5828
5830
5831// BroadcastMRBs-ToBeModified-Item ::= SEQUENCE
5833 bool ext = false;
5834 bool mrb_qos_info_present = false;
5835 bool bc_bearer_ctxt_f1_u_tnl_infoat_cu_present = false;
5836 bool ie_exts_present = false;
5837 uint16_t mrb_id = 1;
5838 qos_flow_level_qos_params_s mrb_qos_info;
5839 mbs_flows_mapped_to_mrb_list_l mbs_flows_mapped_to_mrb_list;
5840 bc_bearer_context_f1_u_tnl_info_c bc_bearer_ctxt_f1_u_tnl_infoat_cu;
5842 // ...
5843
5844 // sequence methods
5845 SRSASN_CODE pack(bit_ref& bref) const;
5846 SRSASN_CODE unpack(cbit_ref& bref);
5847 void to_json(json_writer& j) const;
5848};
5849
5851
5852// BroadcastMRBs-ToBeReleased-Item ::= SEQUENCE
5854 bool ext = false;
5855 bool ie_exts_present = false;
5856 uint16_t mrb_id = 1;
5858 // ...
5859
5860 // sequence methods
5861 SRSASN_CODE pack(bit_ref& bref) const;
5862 SRSASN_CODE unpack(cbit_ref& bref);
5863 void to_json(json_writer& j) const;
5864};
5865
5867
5868// BroadcastMRBs-ToBeSetupMod-Item ::= SEQUENCE
5870 bool ext = false;
5871 uint16_t mrb_id = 1;
5872 qos_flow_level_qos_params_s mrb_qos_info;
5873 mbs_flows_mapped_to_mrb_list_l mbs_flows_mapped_to_mrb_list;
5874 bc_bearer_context_f1_u_tnl_info_c bc_bearer_ctxt_f1_u_tnl_infoat_cu;
5876 // ...
5877
5878 // sequence methods
5879 SRSASN_CODE pack(bit_ref& bref) const;
5880 SRSASN_CODE unpack(cbit_ref& bref);
5881 void to_json(json_writer& j) const;
5882};
5883
5885
5886// MBS-Broadcast-Cell-Item ::= SEQUENCE
5888 bool ext = false;
5889 bool ie_exts_present = false;
5890 nr_cgi_s nr_cgi;
5891 unbounded_octstring<true> mtch_neighbour_cell;
5893 // ...
5894
5895 // sequence methods
5896 SRSASN_CODE pack(bit_ref& bref) const;
5897 SRSASN_CODE unpack(cbit_ref& bref);
5898 void to_json(json_writer& j) const;
5899};
5900
5902
5903// MBS-Broadcast-MRB-Item ::= SEQUENCE
5905 bool ext = false;
5906 bool ie_exts_present = false;
5907 uint16_t mrb_id = 1;
5908 unbounded_octstring<true> mrb_pdcp_cfg_broadcast;
5910 // ...
5911
5912 // sequence methods
5913 SRSASN_CODE pack(bit_ref& bref) const;
5914 SRSASN_CODE unpack(cbit_ref& bref);
5915 void to_json(json_writer& j) const;
5916};
5917
5919
5920// MBS-ServiceAreaInformationItem ::= SEQUENCE
5922 bool ext = false;
5923 bool ie_exts_present = false;
5924 uint32_t mbs_area_session_id = 0;
5925 mbs_service_area_info_s mbs_service_area_info;
5927 // ...
5928
5929 // sequence methods
5930 SRSASN_CODE pack(bit_ref& bref) const;
5931 SRSASN_CODE unpack(cbit_ref& bref);
5932 void to_json(json_writer& j) const;
5933};
5934
5935// MBS-Broadcast-Cell-List ::= SEQUENCE (SIZE (1..512)) OF MBS-Broadcast-Cell-Item
5937
5938// MBS-Broadcast-MRB-List ::= SEQUENCE (SIZE (1..32)) OF MBS-Broadcast-MRB-Item
5940
5941// MBS-CUtoDURRCInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
5943
5944// MBS-ServiceAreaInformationList ::= SEQUENCE (SIZE (1..256)) OF MBS-ServiceAreaInformationItem
5946
5947// MBSServiceArea-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
5949
5951
5952// MBS-CUtoDURRCInformation ::= SEQUENCE
5954 bool ext = false;
5955 bool ie_exts_present = false;
5956 mbs_broadcast_cell_list_l mbs_broadcast_cell_list;
5957 mbs_broadcast_mrb_list_l mbs_broadcast_mrb_list;
5959 // ...
5960
5961 // sequence methods
5962 SRSASN_CODE pack(bit_ref& bref) const;
5963 SRSASN_CODE unpack(cbit_ref& bref);
5964 void to_json(json_writer& j) const;
5965};
5966
5967// MBS-ServiceArea ::= CHOICE
5969 struct types_opts {
5970 enum options { locationindependent, locationdependent, choice_exts, nulltype } value;
5971
5972 const char* to_string() const;
5973 };
5975
5976 // choice methods
5977 mbs_service_area_c() = default;
5979 mbs_service_area_c& operator=(const mbs_service_area_c& other);
5980 ~mbs_service_area_c() { destroy_(); }
5981 void set(types::options e = types::nulltype);
5982 types type() const { return type_; }
5983 SRSASN_CODE pack(bit_ref& bref) const;
5984 SRSASN_CODE unpack(cbit_ref& bref);
5985 void to_json(json_writer& j) const;
5986 // getters
5987 mbs_service_area_info_s& locationindependent()
5988 {
5989 assert_choice_type(types::locationindependent, type_, "MBS-ServiceArea");
5990 return c.get<mbs_service_area_info_s>();
5991 }
5992 mbs_service_area_info_list_l& locationdependent()
5993 {
5994 assert_choice_type(types::locationdependent, type_, "MBS-ServiceArea");
5995 return c.get<mbs_service_area_info_list_l>();
5996 }
5997 protocol_ie_single_container_s<mbs_service_area_ext_ies_o>& choice_exts()
5998 {
5999 assert_choice_type(types::choice_exts, type_, "MBS-ServiceArea");
6000 return c.get<protocol_ie_single_container_s<mbs_service_area_ext_ies_o>>();
6001 }
6002 const mbs_service_area_info_s& locationindependent() const
6003 {
6004 assert_choice_type(types::locationindependent, type_, "MBS-ServiceArea");
6005 return c.get<mbs_service_area_info_s>();
6006 }
6007 const mbs_service_area_info_list_l& locationdependent() const
6008 {
6009 assert_choice_type(types::locationdependent, type_, "MBS-ServiceArea");
6010 return c.get<mbs_service_area_info_list_l>();
6011 }
6012 const protocol_ie_single_container_s<mbs_service_area_ext_ies_o>& choice_exts() const
6013 {
6014 assert_choice_type(types::choice_exts, type_, "MBS-ServiceArea");
6015 return c.get<protocol_ie_single_container_s<mbs_service_area_ext_ies_o>>();
6016 }
6017 mbs_service_area_info_s& set_locationindependent();
6018 mbs_service_area_info_list_l& set_locationdependent();
6019 protocol_ie_single_container_s<mbs_service_area_ext_ies_o>& set_choice_exts();
6020
6021private:
6022 types type_;
6023 choice_buffer_t<mbs_service_area_info_list_l,
6024 mbs_service_area_info_s,
6025 protocol_ie_single_container_s<mbs_service_area_ext_ies_o>>
6026 c;
6027
6028 void destroy_();
6029};
6030
6031// BroadcastMRBs-FailedToBeSetupMod-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6032using broadcast_m_rbs_failed_to_be_setup_mod_item_ext_ies_o = protocol_ext_empty_o;
6033
6034// BroadcastMRBs-FailedtoBeModified-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6035using broadcast_m_rbs_failedto_be_modified_item_ext_ies_o = protocol_ext_empty_o;
6036
6037// BroadcastMRBs-Modified-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6038using broadcast_m_rbs_modified_item_ext_ies_o = protocol_ext_empty_o;
6039
6040// BroadcastMRBs-SetupMod-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6041using broadcast_m_rbs_setup_mod_item_ext_ies_o = protocol_ext_empty_o;
6042
6043using broadcast_m_rbs_failedto_be_modified_item_ext_ies_container = protocol_ext_container_empty_l;
6044
6045// BroadcastMRBs-FailedToBeModified-Item ::= SEQUENCE
6047 bool ext = false;
6048 bool cause_present = false;
6049 bool ie_exts_present = false;
6050 uint16_t mrb_id = 1;
6051 cause_c cause;
6053 // ...
6054
6055 // sequence methods
6056 SRSASN_CODE pack(bit_ref& bref) const;
6057 SRSASN_CODE unpack(cbit_ref& bref);
6058 void to_json(json_writer& j) const;
6059};
6060
6062
6063// BroadcastMRBs-FailedToBeSetupMod-Item ::= SEQUENCE
6065 bool ext = false;
6066 bool cause_present = false;
6067 bool ie_exts_present = false;
6068 uint16_t mrb_id = 1;
6069 cause_c cause;
6071 // ...
6072
6073 // sequence methods
6074 SRSASN_CODE pack(bit_ref& bref) const;
6075 SRSASN_CODE unpack(cbit_ref& bref);
6076 void to_json(json_writer& j) const;
6077};
6078
6080
6081// BroadcastMRBs-Modified-Item ::= SEQUENCE
6083 bool ext = false;
6084 bool bc_bearer_ctxt_f1_u_tnl_infoat_du_present = false;
6085 bool ie_exts_present = false;
6086 uint16_t mrb_id = 1;
6087 bc_bearer_context_f1_u_tnl_info_c bc_bearer_ctxt_f1_u_tnl_infoat_du;
6089 // ...
6090
6091 // sequence methods
6092 SRSASN_CODE pack(bit_ref& bref) const;
6093 SRSASN_CODE unpack(cbit_ref& bref);
6094 void to_json(json_writer& j) const;
6095};
6096
6098
6099// BroadcastMRBs-SetupMod-Item ::= SEQUENCE
6101 bool ext = false;
6102 bool ie_exts_present = false;
6103 uint16_t mrb_id = 1;
6104 bc_bearer_context_f1_u_tnl_info_c bc_bearer_ctxt_f1_u_tnl_infoat_du;
6106 // ...
6107
6108 // sequence methods
6109 SRSASN_CODE pack(bit_ref& bref) const;
6110 SRSASN_CODE unpack(cbit_ref& bref);
6111 void to_json(json_writer& j) const;
6112};
6113
6114// BroadcastMRBs-ToBeSetup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6116
6118
6119// BroadcastMRBs-ToBeSetup-Item ::= SEQUENCE
6121 bool ext = false;
6122 uint16_t mrb_id = 1;
6123 qos_flow_level_qos_params_s mrb_qos_info;
6124 mbs_flows_mapped_to_mrb_list_l mbs_flows_mapped_to_mrb_list;
6125 bc_bearer_context_f1_u_tnl_info_c bc_bearer_ctxt_f1_u_tnl_infoat_cu;
6127 // ...
6128
6129 // sequence methods
6130 SRSASN_CODE pack(bit_ref& bref) const;
6131 SRSASN_CODE unpack(cbit_ref& bref);
6132 void to_json(json_writer& j) const;
6133};
6134
6135// MBS-Session-ID-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6137
6138// SNSSAI-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6140
6142
6143// MBS-Session-ID ::= SEQUENCE
6145 bool ext = false;
6146 bool nid_present = false;
6147 bool ie_exts_present = false;
6151 // ...
6152
6153 // sequence methods
6154 SRSASN_CODE pack(bit_ref& bref) const;
6155 SRSASN_CODE unpack(cbit_ref& bref);
6156 void to_json(json_writer& j) const;
6157};
6158
6160
6161// SNSSAI ::= SEQUENCE
6162struct snssai_s {
6163 bool sd_present = false;
6164 bool ie_exts_present = false;
6168
6169 // sequence methods
6170 SRSASN_CODE pack(bit_ref& bref) const;
6171 SRSASN_CODE unpack(cbit_ref& bref);
6172 void to_json(json_writer& j) const;
6173};
6174
6175// BroadcastMRBs-FailedToBeSetup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6177
6178// BroadcastMRBs-Setup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6180
6182
6183// BroadcastMRBs-FailedToBeSetup-Item ::= SEQUENCE
6185 bool ext = false;
6186 bool cause_present = false;
6187 bool ie_exts_present = false;
6188 uint16_t mrb_id = 1;
6189 cause_c cause;
6191 // ...
6192
6193 // sequence methods
6194 SRSASN_CODE pack(bit_ref& bref) const;
6195 SRSASN_CODE unpack(cbit_ref& bref);
6196 void to_json(json_writer& j) const;
6197};
6198
6200
6201// BroadcastMRBs-Setup-Item ::= SEQUENCE
6203 bool ext = false;
6204 bool ie_exts_present = false;
6205 uint16_t mrb_id = 1;
6206 bc_bearer_context_f1_u_tnl_info_c bc_bearer_ctxt_f1_u_tnl_infoat_du;
6208 // ...
6209
6210 // sequence methods
6211 SRSASN_CODE pack(bit_ref& bref) const;
6212 SRSASN_CODE unpack(cbit_ref& bref);
6213 void to_json(json_writer& j) const;
6214};
6215
6216// CCO-Assistance-Information-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6218
6219// CCO-issue-detection ::= ENUMERATED
6221 enum options { coverage, cell_edge_capacity, /*...*/ nulltype } value;
6222
6223 const char* to_string() const;
6224};
6226
6228
6229// CCO-Assistance-Information ::= SEQUENCE
6231 bool ext = false;
6232 bool cco_issue_detection_present = false;
6233 bool ie_exts_present = false;
6234 cco_issue_detection_e cco_issue_detection;
6235 affected_cells_and_beams_list_l affected_cells_and_beams_list;
6237 // ...
6238
6239 // sequence methods
6240 SRSASN_CODE pack(bit_ref& bref) const;
6241 SRSASN_CODE unpack(cbit_ref& bref);
6242 void to_json(json_writer& j) const;
6243};
6244
6245// CG-SDTSessionInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6247
6249
6250// CG-SDTSessionInfo ::= SEQUENCE
6252 bool ext = false;
6253 bool ie_exts_present = false;
6254 uint64_t gnb_cu_ue_f1ap_id = 0;
6255 uint64_t gnb_du_ue_f1ap_id = 0;
6257 // ...
6258
6259 // sequence methods
6260 SRSASN_CODE pack(bit_ref& bref) const;
6261 SRSASN_CODE unpack(cbit_ref& bref);
6262 void to_json(json_writer& j) const;
6263};
6264
6265// CNUEPagingIdentity-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
6267
6268// CNUEPagingIdentity ::= CHOICE
6270 struct types_opts {
6271 enum options { five_g_s_tmsi, choice_ext, nulltype } value;
6272 typedef uint8_t number_type;
6273
6274 const char* to_string() const;
6275 uint8_t to_number() const;
6276 };
6278
6279 // choice methods
6280 cn_ue_paging_id_c() = default;
6282 cn_ue_paging_id_c& operator=(const cn_ue_paging_id_c& other);
6283 ~cn_ue_paging_id_c() { destroy_(); }
6284 void set(types::options e = types::nulltype);
6285 types type() const { return type_; }
6286 SRSASN_CODE pack(bit_ref& bref) const;
6287 SRSASN_CODE unpack(cbit_ref& bref);
6288 void to_json(json_writer& j) const;
6289 // getters
6290 fixed_bitstring<48, false, true>& five_g_s_tmsi()
6291 {
6292 assert_choice_type(types::five_g_s_tmsi, type_, "CNUEPagingIdentity");
6293 return c.get<fixed_bitstring<48, false, true>>();
6294 }
6295 protocol_ie_single_container_s<cn_ue_paging_id_ext_ies_o>& choice_ext()
6296 {
6297 assert_choice_type(types::choice_ext, type_, "CNUEPagingIdentity");
6298 return c.get<protocol_ie_single_container_s<cn_ue_paging_id_ext_ies_o>>();
6299 }
6300 const fixed_bitstring<48, false, true>& five_g_s_tmsi() const
6301 {
6302 assert_choice_type(types::five_g_s_tmsi, type_, "CNUEPagingIdentity");
6303 return c.get<fixed_bitstring<48, false, true>>();
6304 }
6305 const protocol_ie_single_container_s<cn_ue_paging_id_ext_ies_o>& choice_ext() const
6306 {
6307 assert_choice_type(types::choice_ext, type_, "CNUEPagingIdentity");
6308 return c.get<protocol_ie_single_container_s<cn_ue_paging_id_ext_ies_o>>();
6309 }
6310 fixed_bitstring<48, false, true>& set_five_g_s_tmsi();
6311 protocol_ie_single_container_s<cn_ue_paging_id_ext_ies_o>& set_choice_ext();
6312
6313private:
6314 types type_;
6315 choice_buffer_t<fixed_bitstring<48, false, true>, protocol_ie_single_container_s<cn_ue_paging_id_ext_ies_o>> c;
6316
6317 void destroy_();
6318};
6319
6320// Endpoint-IP-address-and-port-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6322 // Extension ::= OPEN TYPE
6323 struct ext_c {
6324 struct types_opts {
6325 enum options { port_num, nulltype } value;
6326
6327 const char* to_string() const;
6328 };
6330
6331 // choice methods
6332 types type() const { return types::port_num; }
6333 SRSASN_CODE pack(bit_ref& bref) const;
6334 SRSASN_CODE unpack(cbit_ref& bref);
6335 void to_json(json_writer& j) const;
6336 // getters
6337 fixed_bitstring<16, false, true>& port_num() { return c; }
6338 const fixed_bitstring<16, false, true>& port_num() const { return c; }
6339
6340 private:
6342 };
6343
6344 // members lookup methods
6345 static uint32_t idx_to_id(uint32_t idx);
6346 static bool is_id_valid(const uint32_t& id);
6347 static crit_e get_crit(const uint32_t& id);
6348 static ext_c get_ext(const uint32_t& id);
6349 static presence_e get_presence(const uint32_t& id);
6350};
6351
6352// CP-TransportLayerAddress-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
6353using cp_transport_layer_address_ext_ies_o = protocol_ies_empty_o;
6354
6355// Endpoint-IP-address-and-port ::= SEQUENCE
6357 bounded_bitstring<1, 160, true, true> endpoint_ip_address;
6359
6360 // sequence methods
6361 SRSASN_CODE pack(bit_ref& bref) const;
6362 SRSASN_CODE unpack(cbit_ref& bref);
6363 void to_json(json_writer& j) const;
6364};
6365
6366// CP-TransportLayerAddress ::= CHOICE
6368 struct types_opts {
6369 enum options { endpoint_ip_address, endpoint_ip_address_and_port, choice_ext, nulltype } value;
6370
6371 const char* to_string() const;
6372 };
6374
6375 // choice methods
6376 cp_transport_layer_address_c() = default;
6379 ~cp_transport_layer_address_c() { destroy_(); }
6380 void set(types::options e = types::nulltype);
6381 types type() const { return type_; }
6382 SRSASN_CODE pack(bit_ref& bref) const;
6383 SRSASN_CODE unpack(cbit_ref& bref);
6384 void to_json(json_writer& j) const;
6385 // getters
6386 bounded_bitstring<1, 160, true, true>& endpoint_ip_address()
6387 {
6388 assert_choice_type(types::endpoint_ip_address, type_, "CP-TransportLayerAddress");
6390 }
6391 endpoint_ip_address_and_port_s& endpoint_ip_address_and_port()
6392 {
6393 assert_choice_type(types::endpoint_ip_address_and_port, type_, "CP-TransportLayerAddress");
6394 return c.get<endpoint_ip_address_and_port_s>();
6395 }
6396 protocol_ie_single_container_s<cp_transport_layer_address_ext_ies_o>& choice_ext()
6397 {
6398 assert_choice_type(types::choice_ext, type_, "CP-TransportLayerAddress");
6399 return c.get<protocol_ie_single_container_s<cp_transport_layer_address_ext_ies_o>>();
6400 }
6401 const bounded_bitstring<1, 160, true, true>& endpoint_ip_address() const
6402 {
6403 assert_choice_type(types::endpoint_ip_address, type_, "CP-TransportLayerAddress");
6404 return c.get<bounded_bitstring<1, 160, true, true>>();
6405 }
6406 const endpoint_ip_address_and_port_s& endpoint_ip_address_and_port() const
6407 {
6408 assert_choice_type(types::endpoint_ip_address_and_port, type_, "CP-TransportLayerAddress");
6409 return c.get<endpoint_ip_address_and_port_s>();
6410 }
6411 const protocol_ie_single_container_s<cp_transport_layer_address_ext_ies_o>& choice_ext() const
6412 {
6413 assert_choice_type(types::choice_ext, type_, "CP-TransportLayerAddress");
6414 return c.get<protocol_ie_single_container_s<cp_transport_layer_address_ext_ies_o>>();
6415 }
6416 bounded_bitstring<1, 160, true, true>& set_endpoint_ip_address();
6417 endpoint_ip_address_and_port_s& set_endpoint_ip_address_and_port();
6418 protocol_ie_single_container_s<cp_transport_layer_address_ext_ies_o>& set_choice_ext();
6419
6420private:
6421 types type_;
6422 choice_buffer_t<bounded_bitstring<1, 160, true, true>,
6423 endpoint_ip_address_and_port_s,
6424 protocol_ie_single_container_s<cp_transport_layer_address_ext_ies_o>>
6425 c;
6426
6427 void destroy_();
6428};
6429
6430// CPAC-trigger ::= ENUMERATED
6432 enum options { cpac_prep, cpac_executed, /*...*/ nulltype } value;
6433
6434 const char* to_string() const;
6435};
6437
6438// CPACMCGInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6440
6442
6443// CPACMCGInformation ::= SEQUENCE
6445 bool ext = false;
6446 bool ie_exts_present = false;
6447 cp_ac_trigger_e cpac_trigger;
6448 nr_cgi_s pscellid;
6450 // ...
6451
6452 // sequence methods
6453 SRSASN_CODE pack(bit_ref& bref) const;
6454 SRSASN_CODE unpack(cbit_ref& bref);
6455 void to_json(json_writer& j) const;
6456};
6457
6458// CUDURIMInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6460
6461// RIMRSDetectionStatus ::= ENUMERATED
6463 enum options { rs_detected, rs_disappeared, /*...*/ nulltype } value;
6464
6465 const char* to_string() const;
6466};
6468
6470
6471// CUDURIMInformation ::= SEQUENCE
6473 bool ie_exts_present = false;
6474 fixed_bitstring<22, false, true> victim_gnb_set_id;
6475 rimrs_detection_status_e rimrs_detection_status;
6477
6478 // sequence methods
6479 SRSASN_CODE pack(bit_ref& bref) const;
6480 SRSASN_CODE unpack(cbit_ref& bref);
6481 void to_json(json_writer& j) const;
6482};
6483
6484// CUDURadioInformationType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
6486
6487// CUDURadioInformationType ::= CHOICE
6489 struct types_opts {
6490 enum options { rim, choice_ext, nulltype } value;
6491
6492 const char* to_string() const;
6493 };
6495
6496 // choice methods
6497 cu_du_radio_info_type_c() = default;
6499 cu_du_radio_info_type_c& operator=(const cu_du_radio_info_type_c& other);
6500 ~cu_du_radio_info_type_c() { destroy_(); }
6501 void set(types::options e = types::nulltype);
6502 types type() const { return type_; }
6503 SRSASN_CODE pack(bit_ref& bref) const;
6504 SRSASN_CODE unpack(cbit_ref& bref);
6505 void to_json(json_writer& j) const;
6506 // getters
6507 cu_du_rim_info_s& rim()
6508 {
6509 assert_choice_type(types::rim, type_, "CUDURadioInformationType");
6510 return c.get<cu_du_rim_info_s>();
6511 }
6512 protocol_ie_single_container_s<cu_du_radio_info_type_ext_ies_o>& choice_ext()
6513 {
6514 assert_choice_type(types::choice_ext, type_, "CUDURadioInformationType");
6515 return c.get<protocol_ie_single_container_s<cu_du_radio_info_type_ext_ies_o>>();
6516 }
6517 const cu_du_rim_info_s& rim() const
6518 {
6519 assert_choice_type(types::rim, type_, "CUDURadioInformationType");
6520 return c.get<cu_du_rim_info_s>();
6521 }
6522 const protocol_ie_single_container_s<cu_du_radio_info_type_ext_ies_o>& choice_ext() const
6523 {
6524 assert_choice_type(types::choice_ext, type_, "CUDURadioInformationType");
6525 return c.get<protocol_ie_single_container_s<cu_du_radio_info_type_ext_ies_o>>();
6526 }
6527 cu_du_rim_info_s& set_rim();
6528 protocol_ie_single_container_s<cu_du_radio_info_type_ext_ies_o>& set_choice_ext();
6529
6530private:
6531 types type_;
6532 choice_buffer_t<cu_du_rim_info_s, protocol_ie_single_container_s<cu_du_radio_info_type_ext_ies_o>> c;
6533
6534 void destroy_();
6535};
6536
6537// CUtoDURRCInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6539 // Extension ::= OPEN TYPE
6540 struct ext_c {
6541 struct types_opts {
6542 enum options {
6543 ho_prep_info,
6544 cell_group_cfg,
6545 meas_timing_cfg,
6546 ue_assist_info,
6547 cg_cfg,
6548 ue_assist_info_eutra,
6549 location_meas_info,
6550 mu_si_m_gap_cfg,
6551 sdt_mac_phy_cg_cfg,
6552 mb_si_nterest_ind,
6553 need_for_gaps_info_nr,
6554 need_for_gap_ncsg_info_nr,
6555 need_for_gap_ncsg_info_eutra,
6556 cfg_restrict_info_daps,
6557 nulltype
6558 } value;
6559
6560 const char* to_string() const;
6561 };
6563
6564 // choice methods
6565 ext_c() = default;
6566 void set(types::options e = types::nulltype);
6567 types type() const { return type_; }
6568 SRSASN_CODE pack(bit_ref& bref) const;
6569 SRSASN_CODE unpack(cbit_ref& bref);
6570 void to_json(json_writer& j) const;
6571 // getters
6572 unbounded_octstring<true>& ho_prep_info();
6573 unbounded_octstring<true>& cell_group_cfg();
6574 unbounded_octstring<true>& meas_timing_cfg();
6575 unbounded_octstring<true>& ue_assist_info();
6576 unbounded_octstring<true>& cg_cfg();
6577 unbounded_octstring<true>& ue_assist_info_eutra();
6578 unbounded_octstring<true>& location_meas_info();
6579 unbounded_octstring<true>& mu_si_m_gap_cfg();
6580 unbounded_octstring<true>& sdt_mac_phy_cg_cfg();
6581 unbounded_octstring<true>& mb_si_nterest_ind();
6582 unbounded_octstring<true>& need_for_gaps_info_nr();
6583 unbounded_octstring<true>& need_for_gap_ncsg_info_nr();
6584 unbounded_octstring<true>& need_for_gap_ncsg_info_eutra();
6585 unbounded_octstring<true>& cfg_restrict_info_daps();
6586 const unbounded_octstring<true>& ho_prep_info() const;
6587 const unbounded_octstring<true>& cell_group_cfg() const;
6588 const unbounded_octstring<true>& meas_timing_cfg() const;
6589 const unbounded_octstring<true>& ue_assist_info() const;
6590 const unbounded_octstring<true>& cg_cfg() const;
6591 const unbounded_octstring<true>& ue_assist_info_eutra() const;
6592 const unbounded_octstring<true>& location_meas_info() const;
6593 const unbounded_octstring<true>& mu_si_m_gap_cfg() const;
6594 const unbounded_octstring<true>& sdt_mac_phy_cg_cfg() const;
6595 const unbounded_octstring<true>& mb_si_nterest_ind() const;
6596 const unbounded_octstring<true>& need_for_gaps_info_nr() const;
6597 const unbounded_octstring<true>& need_for_gap_ncsg_info_nr() const;
6598 const unbounded_octstring<true>& need_for_gap_ncsg_info_eutra() const;
6599 const unbounded_octstring<true>& cfg_restrict_info_daps() const;
6600
6601 private:
6602 types type_;
6604 };
6605
6606 // members lookup methods
6607 static uint32_t idx_to_id(uint32_t idx);
6608 static bool is_id_valid(const uint32_t& id);
6609 static crit_e get_crit(const uint32_t& id);
6610 static ext_c get_ext(const uint32_t& id);
6611 static presence_e get_presence(const uint32_t& id);
6612};
6613
6615 bool ho_prep_info_present = false;
6616 bool cell_group_cfg_present = false;
6617 bool meas_timing_cfg_present = false;
6618 bool ue_assist_info_present = false;
6619 bool cg_cfg_present = false;
6620 bool ue_assist_info_eutra_present = false;
6621 bool location_meas_info_present = false;
6622 bool mu_si_m_gap_cfg_present = false;
6623 bool sdt_mac_phy_cg_cfg_present = false;
6624 bool mb_si_nterest_ind_present = false;
6625 bool need_for_gaps_info_nr_present = false;
6626 bool need_for_gap_ncsg_info_nr_present = false;
6627 bool need_for_gap_ncsg_info_eutra_present = false;
6628 bool cfg_restrict_info_daps_present = false;
6629 unbounded_octstring<true> ho_prep_info;
6630 unbounded_octstring<true> cell_group_cfg;
6631 unbounded_octstring<true> meas_timing_cfg;
6632 unbounded_octstring<true> ue_assist_info;
6634 unbounded_octstring<true> ue_assist_info_eutra;
6635 unbounded_octstring<true> location_meas_info;
6636 unbounded_octstring<true> mu_si_m_gap_cfg;
6637 unbounded_octstring<true> sdt_mac_phy_cg_cfg;
6638 unbounded_octstring<true> mb_si_nterest_ind;
6639 unbounded_octstring<true> need_for_gaps_info_nr;
6640 unbounded_octstring<true> need_for_gap_ncsg_info_nr;
6641 unbounded_octstring<true> need_for_gap_ncsg_info_eutra;
6642 unbounded_octstring<true> cfg_restrict_info_daps;
6643
6644 // sequence methods
6645 SRSASN_CODE pack(bit_ref& bref) const;
6646 SRSASN_CODE unpack(cbit_ref& bref);
6647 void to_json(json_writer& j) const;
6648};
6649
6650// CUtoDURRCInformation ::= SEQUENCE
6652 bool ext = false;
6653 bool ie_exts_present = false;
6654 unbounded_octstring<true> cg_cfg_info;
6655 unbounded_octstring<true> ue_cap_rat_container_list;
6658 // ...
6659
6660 // sequence methods
6661 SRSASN_CODE pack(bit_ref& bref) const;
6662 SRSASN_CODE unpack(cbit_ref& bref);
6663 void to_json(json_writer& j) const;
6664};
6665
6666// Candidate-SpCell-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6668
6670
6671// Candidate-SpCell-Item ::= SEQUENCE
6673 bool ext = false;
6674 bool ie_exts_present = false;
6675 nr_cgi_s candidate_sp_cell_id;
6677 // ...
6678
6679 // sequence methods
6680 SRSASN_CODE pack(bit_ref& bref) const;
6681 SRSASN_CODE unpack(cbit_ref& bref);
6682 void to_json(json_writer& j) const;
6683};
6684
6685// SSBAreaCapacityValueItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6687
6689
6690// SSBAreaCapacityValueItem ::= SEQUENCE
6692 bool ie_exts_present = false;
6693 uint8_t ssb_idx = 0;
6694 uint8_t ssb_area_capacity_value = 0;
6696
6697 // sequence methods
6698 SRSASN_CODE pack(bit_ref& bref) const;
6699 SRSASN_CODE unpack(cbit_ref& bref);
6700 void to_json(json_writer& j) const;
6701};
6702
6703// CapacityValue-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6705
6706// SSBAreaCapacityValueList ::= SEQUENCE (SIZE (1..64)) OF SSBAreaCapacityValueItem
6708
6710
6711// CapacityValue ::= SEQUENCE
6713 bool ie_exts_present = false;
6714 uint8_t capacity_value = 0;
6715 ssb_area_capacity_value_list_l ssb_area_capacity_value_list;
6717
6718 // sequence methods
6719 SRSASN_CODE pack(bit_ref& bref) const;
6720 SRSASN_CODE unpack(cbit_ref& bref);
6721 void to_json(json_writer& j) const;
6722};
6723
6724// SNSSAIRadioResourceStatus-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6726
6728
6729// SNSSAIRadioResourceStatus-Item ::= SEQUENCE
6731 bool ie_exts_present = false;
6732 snssai_s snssai;
6733 uint8_t snssai_dl_gbr_prb_usage = 0;
6734 uint8_t snssai_ul_gbr_prb_usage = 0;
6735 uint8_t snssai_dl_non_gbr_prb_usage = 0;
6736 uint8_t snssai_ul_non_gbr_prb_usage = 0;
6737 uint8_t snssai_dl_total_prb_alloc = 0;
6738 uint8_t snssai_ul_total_prb_alloc = 0;
6740
6741 // sequence methods
6742 SRSASN_CODE pack(bit_ref& bref) const;
6743 SRSASN_CODE unpack(cbit_ref& bref);
6744 void to_json(json_writer& j) const;
6745};
6746
6747// SNSSAIAvailableCapacity-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6749
6750// SNSSAIRadioResourceStatus-List ::= SEQUENCE (SIZE (1..1024)) OF SNSSAIRadioResourceStatus-Item
6752
6753// SliceRadioResourceStatus-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6755
6757
6758// SNSSAIAvailableCapacity-Item ::= SEQUENCE
6760 bool slice_available_capacity_value_dl_present = false;
6761 bool slice_available_capacity_value_ul_present = false;
6762 bool ie_exts_present = false;
6763 snssai_s snssai;
6764 uint8_t slice_available_capacity_value_dl = 0;
6765 uint8_t slice_available_capacity_value_ul = 0;
6767
6768 // sequence methods
6769 SRSASN_CODE pack(bit_ref& bref) const;
6770 SRSASN_CODE unpack(cbit_ref& bref);
6771 void to_json(json_writer& j) const;
6772};
6773
6775
6776// SliceRadioResourceStatus-Item ::= SEQUENCE
6778 bool ie_exts_present = false;
6780 snssai_rr_status_list_l snssai_rr_status_list;
6782
6783 // sequence methods
6784 SRSASN_CODE pack(bit_ref& bref) const;
6785 SRSASN_CODE unpack(cbit_ref& bref);
6786 void to_json(json_writer& j) const;
6787};
6788
6789// CompositeAvailableCapacity-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6791
6792// MIMOPRBusageInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6794
6795// NR-U-Channel-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6797
6798// SNSSAIAvailableCapacity-List ::= SEQUENCE (SIZE (1..1024)) OF SNSSAIAvailableCapacity-Item
6800
6801// SSBAreaRadioResourceStatusItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6803
6804// SliceAvailableCapacityItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6806
6807// SliceRadioResourceStatus-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6809
6810// SliceRadioResourceStatus-List ::= SEQUENCE (SIZE (1..12)) OF SliceRadioResourceStatus-Item
6812
6814
6815// CompositeAvailableCapacity ::= SEQUENCE
6817 bool cell_capacity_class_value_present = false;
6818 bool ie_exts_present = false;
6819 uint8_t cell_capacity_class_value = 1;
6820 capacity_value_s capacity_value;
6822
6823 // sequence methods
6824 SRSASN_CODE pack(bit_ref& bref) const;
6825 SRSASN_CODE unpack(cbit_ref& bref);
6826 void to_json(json_writer& j) const;
6827};
6828
6830
6831// MIMOPRBusageInformation ::= SEQUENCE
6833 bool ext = false;
6834 bool ie_exts_present = false;
6835 uint8_t dl_gbr_prb_usage_for_mimo = 0;
6836 uint8_t ul_gbr_prb_usage_for_mimo = 0;
6837 uint8_t dl_non_gbr_prb_usage_for_mimo = 0;
6838 uint8_t ul_non_gbr_prb_usage_for_mimo = 0;
6839 uint8_t dl_total_prb_usage_for_mimo = 0;
6840 uint8_t ul_total_prb_usage_for_mimo = 0;
6842 // ...
6843
6844 // sequence methods
6845 SRSASN_CODE pack(bit_ref& bref) const;
6846 SRSASN_CODE unpack(cbit_ref& bref);
6847 void to_json(json_writer& j) const;
6848};
6849
6851
6852// NR-U-Channel-Item ::= SEQUENCE
6854 bool ext = false;
6855 bool ie_exts_present = false;
6856 uint8_t nr_u_ch_id = 1;
6857 uint8_t ch_occupancy_time_percentage_dl = 0;
6858 int8_t energy_detection_thres = -100;
6860 // ...
6861
6862 // sequence methods
6863 SRSASN_CODE pack(bit_ref& bref) const;
6864 SRSASN_CODE unpack(cbit_ref& bref);
6865 void to_json(json_writer& j) const;
6866};
6867
6869
6870// SSBAreaRadioResourceStatusItem ::= SEQUENCE
6872 bool dl_sched_pdcch_cc_eusage_present = false;
6873 bool ul_sched_pdcch_cc_eusage_present = false;
6874 bool ie_exts_present = false;
6875 uint8_t ssb_idx = 0;
6876 uint8_t ssb_area_dl_gbr_prb_usage = 0;
6877 uint8_t ssb_area_ul_gbr_prb_usage = 0;
6878 uint8_t ssb_area_dl_non_gbr_prb_usage = 0;
6879 uint8_t ssb_area_ul_non_gbr_prb_usage = 0;
6880 uint8_t ssb_area_dl_total_prb_usage = 0;
6881 uint8_t ssb_area_ul_total_prb_usage = 0;
6882 uint8_t dl_sched_pdcch_cc_eusage = 0;
6883 uint8_t ul_sched_pdcch_cc_eusage = 0;
6885
6886 // sequence methods
6887 SRSASN_CODE pack(bit_ref& bref) const;
6888 SRSASN_CODE unpack(cbit_ref& bref);
6889 void to_json(json_writer& j) const;
6890};
6891
6893
6894// SliceAvailableCapacityItem ::= SEQUENCE
6896 bool ie_exts_present = false;
6898 snssai_available_capacity_list_l snssai_available_capacity_list;
6900
6901 // sequence methods
6902 SRSASN_CODE pack(bit_ref& bref) const;
6903 SRSASN_CODE unpack(cbit_ref& bref);
6904 void to_json(json_writer& j) const;
6905};
6906
6908
6909// SliceRadioResourceStatus ::= SEQUENCE
6911 bool ie_exts_present = false;
6912 slice_rr_status_list_l slice_rr_status;
6914
6915 // sequence methods
6916 SRSASN_CODE pack(bit_ref& bref) const;
6917 SRSASN_CODE unpack(cbit_ref& bref);
6918 void to_json(json_writer& j) const;
6919};
6920
6921// CompositeAvailableCapacityGroup-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6923 // Extension ::= OPEN TYPE
6924 struct ext_c {
6925 struct types_opts {
6926 enum options { composite_available_capacity_sul, nulltype } value;
6927
6928 const char* to_string() const;
6929 };
6931
6932 // choice methods
6933 types type() const { return types::composite_available_capacity_sul; }
6934 SRSASN_CODE pack(bit_ref& bref) const;
6935 SRSASN_CODE unpack(cbit_ref& bref);
6936 void to_json(json_writer& j) const;
6937 // getters
6938 composite_available_capacity_s& composite_available_capacity_sul() { return c; }
6939 const composite_available_capacity_s& composite_available_capacity_sul() const { return c; }
6940
6941 private:
6942 composite_available_capacity_s c;
6943 };
6944
6945 // members lookup methods
6946 static uint32_t idx_to_id(uint32_t idx);
6947 static bool is_id_valid(const uint32_t& id);
6948 static crit_e get_crit(const uint32_t& id);
6949 static ext_c get_ext(const uint32_t& id);
6950 static presence_e get_presence(const uint32_t& id);
6951};
6952
6953// NR-U-Channel-List ::= SEQUENCE (SIZE (1..16)) OF NR-U-Channel-Item
6954using nr_u_ch_list_l = dyn_array<nr_u_ch_item_s>;
6955
6956// RadioResourceStatus-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6958 // Extension ::= OPEN TYPE
6959 struct ext_c {
6960 struct types_opts {
6961 enum options { slice_rr_status, mimo_prb_usage_info, nulltype } value;
6962
6963 const char* to_string() const;
6964 };
6966
6967 // choice methods
6968 ext_c() = default;
6969 void set(types::options e = types::nulltype);
6970 types type() const { return type_; }
6971 SRSASN_CODE pack(bit_ref& bref) const;
6972 SRSASN_CODE unpack(cbit_ref& bref);
6973 void to_json(json_writer& j) const;
6974 // getters
6975 slice_rr_status_s& slice_rr_status();
6976 mimo_prb_usage_info_s& mimo_prb_usage_info();
6977 const slice_rr_status_s& slice_rr_status() const;
6978 const mimo_prb_usage_info_s& mimo_prb_usage_info() const;
6979
6980 private:
6981 types type_;
6983 };
6984
6985 // members lookup methods
6986 static uint32_t idx_to_id(uint32_t idx);
6987 static bool is_id_valid(const uint32_t& id);
6988 static crit_e get_crit(const uint32_t& id);
6989 static ext_c get_ext(const uint32_t& id);
6990 static presence_e get_presence(const uint32_t& id);
6991};
6992
6993// SSBAreaRadioResourceStatusList ::= SEQUENCE (SIZE (1..64)) OF SSBAreaRadioResourceStatusItem
6994using ssb_area_rr_status_list_l = dyn_array<ssb_area_rr_status_item_s>;
6995
6996// SliceAvailableCapacity-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
6997using slice_available_capacity_ext_ies_o = protocol_ext_empty_o;
6998
6999// SliceAvailableCapacityList ::= SEQUENCE (SIZE (1..12)) OF SliceAvailableCapacityItem
7000using slice_available_capacity_list_l = dyn_array<slice_available_capacity_item_s>;
7001
7002// CellMeasurementResultItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7004 // Extension ::= OPEN TYPE
7005 struct ext_c {
7006 struct types_opts {
7007 enum options { nr_u_ch_list, nulltype } value;
7008
7009 const char* to_string() const;
7010 };
7012
7013 // choice methods
7014 types type() const { return types::nr_u_ch_list; }
7015 SRSASN_CODE pack(bit_ref& bref) const;
7016 SRSASN_CODE unpack(cbit_ref& bref);
7017 void to_json(json_writer& j) const;
7018 // getters
7019 nr_u_ch_list_l& nr_u_ch_list() { return c; }
7020 const nr_u_ch_list_l& nr_u_ch_list() const { return c; }
7021
7022 private:
7023 nr_u_ch_list_l c;
7024 };
7025
7026 // members lookup methods
7027 static uint32_t idx_to_id(uint32_t idx);
7028 static bool is_id_valid(const uint32_t& id);
7029 static crit_e get_crit(const uint32_t& id);
7030 static ext_c get_ext(const uint32_t& id);
7031 static presence_e get_presence(const uint32_t& id);
7032};
7033
7034// CompositeAvailableCapacityGroup ::= SEQUENCE
7036 composite_available_capacity_s composite_available_capacity_dl;
7037 composite_available_capacity_s composite_available_capacity_ul;
7039
7040 // sequence methods
7041 SRSASN_CODE pack(bit_ref& bref) const;
7042 SRSASN_CODE unpack(cbit_ref& bref);
7043 void to_json(json_writer& j) const;
7044};
7045
7047 bool slice_rr_status_present = false;
7048 bool mimo_prb_usage_info_present = false;
7049 slice_rr_status_s slice_rr_status;
7050 mimo_prb_usage_info_s mimo_prb_usage_info;
7051
7052 // sequence methods
7053 SRSASN_CODE pack(bit_ref& bref) const;
7054 SRSASN_CODE unpack(cbit_ref& bref);
7055 void to_json(json_writer& j) const;
7056};
7057
7058// RadioResourceStatus ::= SEQUENCE
7060 bool ie_exts_present = false;
7061 ssb_area_rr_status_list_l ssb_area_rr_status_list;
7063
7064 // sequence methods
7065 SRSASN_CODE pack(bit_ref& bref) const;
7066 SRSASN_CODE unpack(cbit_ref& bref);
7067 void to_json(json_writer& j) const;
7068};
7069
7071
7072// SliceAvailableCapacity ::= SEQUENCE
7074 bool ie_exts_present = false;
7075 slice_available_capacity_list_l slice_available_capacity_list;
7077
7078 // sequence methods
7079 SRSASN_CODE pack(bit_ref& bref) const;
7080 SRSASN_CODE unpack(cbit_ref& bref);
7081 void to_json(json_writer& j) const;
7082};
7083
7084// CellMeasurementResultItem ::= SEQUENCE
7086 bool rr_status_present = false;
7087 bool composite_available_capacity_group_present = false;
7088 bool slice_available_capacity_present = false;
7089 bool numof_active_ues_present = false;
7090 nr_cgi_s cell_id;
7091 rr_status_s rr_status;
7092 composite_available_capacity_group_s composite_available_capacity_group;
7093 slice_available_capacity_s slice_available_capacity;
7094 uint32_t numof_active_ues = 0;
7096
7097 // sequence methods
7098 SRSASN_CODE pack(bit_ref& bref) const;
7099 SRSASN_CODE unpack(cbit_ref& bref);
7100 void to_json(json_writer& j) const;
7101};
7102
7103// CellMeasurementResultList ::= SEQUENCE (SIZE (1..512)) OF CellMeasurementResultItem
7105
7106// SNSSAI-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7108
7110
7111// SNSSAI-Item ::= SEQUENCE
7113 bool ie_exts_present = false;
7114 snssai_s snssai;
7116
7117 // sequence methods
7118 SRSASN_CODE pack(bit_ref& bref) const;
7119 SRSASN_CODE unpack(cbit_ref& bref);
7120 void to_json(json_writer& j) const;
7121};
7122
7123// SNSSAI-list ::= SEQUENCE (SIZE (1..1024)) OF SNSSAI-Item
7125
7126// SSBToReportItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7128
7129// SliceToReportItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7131
7133
7134// SSBToReportItem ::= SEQUENCE
7136 bool ie_exts_present = false;
7137 uint8_t ssb_idx = 0;
7139
7140 // sequence methods
7141 SRSASN_CODE pack(bit_ref& bref) const;
7142 SRSASN_CODE unpack(cbit_ref& bref);
7143 void to_json(json_writer& j) const;
7144};
7145
7147
7148// SliceToReportItem ::= SEQUENCE
7150 bool ie_exts_present = false;
7152 snssai_list_l snssai_list;
7154
7155 // sequence methods
7156 SRSASN_CODE pack(bit_ref& bref) const;
7157 SRSASN_CODE unpack(cbit_ref& bref);
7158 void to_json(json_writer& j) const;
7159};
7160
7161// CellToReportItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7163
7164// SSBToReportList ::= SEQUENCE (SIZE (1..64)) OF SSBToReportItem
7166
7167// SliceToReportList ::= SEQUENCE (SIZE (1..12)) OF SliceToReportItem
7169
7171
7172// CellToReportItem ::= SEQUENCE
7174 bool ie_exts_present = false;
7175 nr_cgi_s cell_id;
7176 ssb_to_report_list_l ssb_to_report_list;
7177 slice_to_report_list_l slice_to_report_list;
7179
7180 // sequence methods
7181 SRSASN_CODE pack(bit_ref& bref) const;
7182 SRSASN_CODE unpack(cbit_ref& bref);
7183 void to_json(json_writer& j) const;
7184};
7185
7186// CellToReportList ::= SEQUENCE (SIZE (1..512)) OF CellToReportItem
7188
7189// PrivacyIndicator ::= ENUMERATED
7191 enum options { immediate_mdt, logged_mdt, /*...*/ nulltype } value;
7192
7193 const char* to_string() const;
7194};
7196
7197// CellSize ::= ENUMERATED
7199 enum options { verysmall, small, medium, large, /*...*/ nulltype } value;
7200
7201 const char* to_string() const;
7202};
7204
7205// CellType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7207
7209
7210// CellType ::= SEQUENCE
7212 bool ext = false;
7213 bool ie_exts_present = false;
7214 cell_size_e cell_size;
7216 // ...
7217
7218 // sequence methods
7219 SRSASN_CODE pack(bit_ref& bref) const;
7220 SRSASN_CODE unpack(cbit_ref& bref);
7221 void to_json(json_writer& j) const;
7222};
7223
7224// Cells-Broadcast-Cancelled-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7226
7228
7229// Cells-Broadcast-Cancelled-Item ::= SEQUENCE
7231 bool ext = false;
7232 bool ie_exts_present = false;
7233 nr_cgi_s nr_cgi;
7234 uint32_t nof_broadcasts = 0;
7236 // ...
7237
7238 // sequence methods
7239 SRSASN_CODE pack(bit_ref& bref) const;
7240 SRSASN_CODE unpack(cbit_ref& bref);
7241 void to_json(json_writer& j) const;
7242};
7243
7244// Cells-Broadcast-Completed-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7246
7248
7249// Cells-Broadcast-Completed-Item ::= SEQUENCE
7251 bool ext = false;
7252 bool ie_exts_present = false;
7253 nr_cgi_s nr_cgi;
7255 // ...
7256
7257 // sequence methods
7258 SRSASN_CODE pack(bit_ref& bref) const;
7259 SRSASN_CODE unpack(cbit_ref& bref);
7260 void to_json(json_writer& j) const;
7261};
7262
7263// Cells-Failed-to-be-Activated-List-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7265
7267
7268// Cells-Failed-to-be-Activated-List-Item ::= SEQUENCE
7270 bool ext = false;
7271 bool ie_exts_present = false;
7272 nr_cgi_s nr_cgi;
7273 cause_c cause;
7275 // ...
7276
7277 // sequence methods
7278 SRSASN_CODE pack(bit_ref& bref) const;
7279 SRSASN_CODE unpack(cbit_ref& bref);
7280 void to_json(json_writer& j) const;
7281};
7282
7283// Service-State ::= ENUMERATED
7285 enum options { in_service, out_of_service, /*...*/ nulltype } value;
7286
7287 const char* to_string() const;
7288};
7290
7291// Service-Status-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7293
7294// Cells-Status-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7296
7298
7299// Service-Status ::= SEQUENCE
7302 enum options { true_value, /*...*/ nulltype } value;
7303
7304 const char* to_string() const;
7305 };
7307
7308 // member variables
7309 bool ext = false;
7310 bool switching_off_ongoing_present = false;
7311 bool ie_exts_present = false;
7312 service_state_e service_state;
7313 switching_off_ongoing_e_ switching_off_ongoing;
7315 // ...
7316
7317 // sequence methods
7318 SRSASN_CODE pack(bit_ref& bref) const;
7319 SRSASN_CODE unpack(cbit_ref& bref);
7320 void to_json(json_writer& j) const;
7321};
7322
7324
7325// Cells-Status-Item ::= SEQUENCE
7327 bool ext = false;
7328 bool ie_exts_present = false;
7329 nr_cgi_s nr_cgi;
7330 service_status_s service_status;
7332 // ...
7333
7334 // sequence methods
7335 SRSASN_CODE pack(bit_ref& bref) const;
7336 SRSASN_CODE unpack(cbit_ref& bref);
7337 void to_json(json_writer& j) const;
7338};
7339
7340// Cells-To-Be-Broadcast-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7342
7344
7345// Cells-To-Be-Broadcast-Item ::= SEQUENCE
7347 bool ext = false;
7348 bool ie_exts_present = false;
7349 nr_cgi_s nr_cgi;
7351 // ...
7352
7353 // sequence methods
7354 SRSASN_CODE pack(bit_ref& bref) const;
7355 SRSASN_CODE unpack(cbit_ref& bref);
7356 void to_json(json_writer& j) const;
7357};
7358
7359// SSB-transmisisonBitmap-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
7361
7362// IAB-STC-Info-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7364
7365// SSB-subcarrierSpacing ::= ENUMERATED
7367 enum options { khz15, khz30, khz120, khz240, spare3, spare2, spare1, /*...*/ nulltype } value;
7368 typedef uint8_t number_type;
7369
7370 const char* to_string() const;
7371 uint8_t to_number() const;
7372};
7374
7375// SSB-transmissionBitmap ::= CHOICE
7377 struct types_opts {
7378 enum options { short_bitmap, medium_bitmap, long_bitmap, choice_ext, nulltype } value;
7379
7380 const char* to_string() const;
7381 };
7383
7384 // choice methods
7385 ssb_tx_bitmap_c() = default;
7386 ssb_tx_bitmap_c(const ssb_tx_bitmap_c& other);
7387 ssb_tx_bitmap_c& operator=(const ssb_tx_bitmap_c& other);
7388 ~ssb_tx_bitmap_c() { destroy_(); }
7389 void set(types::options e = types::nulltype);
7390 types type() const { return type_; }
7391 SRSASN_CODE pack(bit_ref& bref) const;
7392 SRSASN_CODE unpack(cbit_ref& bref);
7393 void to_json(json_writer& j) const;
7394 // getters
7395 fixed_bitstring<4, false, true>& short_bitmap()
7396 {
7397 assert_choice_type(types::short_bitmap, type_, "SSB-transmissionBitmap");
7398 return c.get<fixed_bitstring<4, false, true>>();
7399 }
7400 fixed_bitstring<8, false, true>& medium_bitmap()
7401 {
7402 assert_choice_type(types::medium_bitmap, type_, "SSB-transmissionBitmap");
7403 return c.get<fixed_bitstring<8, false, true>>();
7404 }
7405 fixed_bitstring<64, false, true>& long_bitmap()
7406 {
7407 assert_choice_type(types::long_bitmap, type_, "SSB-transmissionBitmap");
7408 return c.get<fixed_bitstring<64, false, true>>();
7409 }
7410 protocol_ie_single_container_s<ssb_transmisison_bitmap_ext_ies_o>& choice_ext()
7411 {
7412 assert_choice_type(types::choice_ext, type_, "SSB-transmissionBitmap");
7413 return c.get<protocol_ie_single_container_s<ssb_transmisison_bitmap_ext_ies_o>>();
7414 }
7415 const fixed_bitstring<4, false, true>& short_bitmap() const
7416 {
7417 assert_choice_type(types::short_bitmap, type_, "SSB-transmissionBitmap");
7418 return c.get<fixed_bitstring<4, false, true>>();
7419 }
7420 const fixed_bitstring<8, false, true>& medium_bitmap() const
7421 {
7422 assert_choice_type(types::medium_bitmap, type_, "SSB-transmissionBitmap");
7423 return c.get<fixed_bitstring<8, false, true>>();
7424 }
7425 const fixed_bitstring<64, false, true>& long_bitmap() const
7426 {
7427 assert_choice_type(types::long_bitmap, type_, "SSB-transmissionBitmap");
7428 return c.get<fixed_bitstring<64, false, true>>();
7429 }
7430 const protocol_ie_single_container_s<ssb_transmisison_bitmap_ext_ies_o>& choice_ext() const
7431 {
7432 assert_choice_type(types::choice_ext, type_, "SSB-transmissionBitmap");
7433 return c.get<protocol_ie_single_container_s<ssb_transmisison_bitmap_ext_ies_o>>();
7434 }
7435 fixed_bitstring<4, false, true>& set_short_bitmap();
7436 fixed_bitstring<8, false, true>& set_medium_bitmap();
7437 fixed_bitstring<64, false, true>& set_long_bitmap();
7438 protocol_ie_single_container_s<ssb_transmisison_bitmap_ext_ies_o>& set_choice_ext();
7439
7440private:
7441 types type_;
7442 choice_buffer_t<fixed_bitstring<64, false, true>, protocol_ie_single_container_s<ssb_transmisison_bitmap_ext_ies_o>>
7443 c;
7444
7445 void destroy_();
7446};
7447
7448// SSB-transmissionPeriodicity ::= ENUMERATED
7450 enum options { sf10, sf20, sf40, sf80, sf160, sf320, sf640, /*...*/ nulltype } value;
7451 typedef uint16_t number_type;
7452
7453 const char* to_string() const;
7454 uint16_t to_number() const;
7455};
7457
7458// AreaScope ::= ENUMERATED
7460 enum options { true_value, /*...*/ nulltype } value;
7461
7462 const char* to_string() const;
7463};
7465
7467
7468// IAB-STC-Info-Item ::= SEQUENCE
7470 bool ie_exts_present = false;
7471 uint32_t ssb_freq_info = 0;
7472 ssb_subcarrier_spacing_e ssb_subcarrier_spacing;
7473 ssb_tx_periodicity_e ssb_tx_periodicity;
7474 uint8_t ssb_tx_timing_offset = 0;
7475 ssb_tx_bitmap_c ssb_tx_bitmap;
7477
7478 // sequence methods
7479 SRSASN_CODE pack(bit_ref& bref) const;
7480 SRSASN_CODE unpack(cbit_ref& bref);
7481 void to_json(json_writer& j) const;
7482};
7483
7484// IAB-STC-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7486
7487// IAB-STC-Info-List ::= SEQUENCE (SIZE (1..45)) OF IAB-STC-Info-Item
7489
7490// SibtypetobeupdatedListItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7492 // Extension ::= OPEN TYPE
7493 struct ext_c {
7494 struct types_opts {
7495 enum options { area_scope, nulltype } value;
7496
7497 const char* to_string() const;
7498 };
7500
7501 // choice methods
7502 types type() const { return types::area_scope; }
7503 SRSASN_CODE pack(bit_ref& bref) const;
7504 SRSASN_CODE unpack(cbit_ref& bref);
7505 void to_json(json_writer& j) const;
7506 // getters
7507 area_scope_e& area_scope() { return c; }
7508 const area_scope_e& area_scope() const { return c; }
7509
7510 private:
7511 area_scope_e c;
7512 };
7513
7514 // members lookup methods
7515 static uint32_t idx_to_id(uint32_t idx);
7516 static bool is_id_valid(const uint32_t& id);
7517 static crit_e get_crit(const uint32_t& id);
7518 static ext_c get_ext(const uint32_t& id);
7519 static presence_e get_presence(const uint32_t& id);
7520};
7521
7522// GNB-CUSystemInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7524 // Extension ::= OPEN TYPE
7525 struct ext_c {
7526 struct types_opts {
7527 enum options { sys_info_area_id, nulltype } value;
7528
7529 const char* to_string() const;
7530 };
7532
7533 // choice methods
7534 types type() const { return types::sys_info_area_id; }
7535 SRSASN_CODE pack(bit_ref& bref) const;
7536 SRSASN_CODE unpack(cbit_ref& bref);
7537 void to_json(json_writer& j) const;
7538 // getters
7539 fixed_bitstring<24, false, true>& sys_info_area_id() { return c; }
7540 const fixed_bitstring<24, false, true>& sys_info_area_id() const { return c; }
7541
7542 private:
7544 };
7545
7546 // members lookup methods
7547 static uint32_t idx_to_id(uint32_t idx);
7548 static bool is_id_valid(const uint32_t& id);
7549 static crit_e get_crit(const uint32_t& id);
7550 static ext_c get_ext(const uint32_t& id);
7551 static presence_e get_presence(const uint32_t& id);
7552};
7553
7554// IAB-Info-IAB-donor-CU-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7555using iab_info_iab_donor_cu_ext_ies_o = protocol_ext_empty_o;
7556
7557using iab_stc_info_ext_ies_container = protocol_ext_container_empty_l;
7558
7559// IAB-STC-Info ::= SEQUENCE
7561 bool ie_exts_present = false;
7562 iab_stc_info_list_l iab_stc_info_list;
7564
7565 // sequence methods
7566 SRSASN_CODE pack(bit_ref& bref) const;
7567 SRSASN_CODE unpack(cbit_ref& bref);
7568 void to_json(json_writer& j) const;
7569};
7570
7571// SibtypetobeupdatedListItem ::= SEQUENCE
7573 bool ext = false;
7574 uint8_t sib_type = 2;
7576 uint8_t value_tag = 0;
7578 // ...
7579
7580 // sequence methods
7581 SRSASN_CODE pack(bit_ref& bref) const;
7582 SRSASN_CODE unpack(cbit_ref& bref);
7583 void to_json(json_writer& j) const;
7584};
7585
7586// GNB-CUSystemInformation ::= SEQUENCE
7589
7590 // member variables
7591 bool ext = false;
7592 sibtypetobeupdlist_l_ sibtypetobeupdlist;
7594 // ...
7595
7596 // sequence methods
7597 SRSASN_CODE pack(bit_ref& bref) const;
7598 SRSASN_CODE unpack(cbit_ref& bref);
7599 void to_json(json_writer& j) const;
7600};
7601
7603
7604// IAB-Info-IAB-donor-CU ::= SEQUENCE
7606 bool iab_stc_info_present = false;
7607 bool ie_exts_present = false;
7608 iab_stc_info_s iab_stc_info;
7610
7611 // sequence methods
7612 SRSASN_CODE pack(bit_ref& bref) const;
7613 SRSASN_CODE unpack(cbit_ref& bref);
7614 void to_json(json_writer& j) const;
7615};
7616
7617// Cells-to-be-Activated-List-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7619 // Extension ::= OPEN TYPE
7620 struct ext_c {
7621 struct types_opts {
7622 enum options {
7623 gnb_cu_sys_info,
7624 available_plmn_list,
7625 extended_available_plmn_list,
7626 iab_info_iab_donor_cu,
7627 available_sn_pn_id_list,
7628 mbs_broadcast_neighbour_cell_list,
7629 nulltype
7630 } value;
7631
7632 const char* to_string() const;
7633 };
7635
7636 // choice methods
7637 ext_c() = default;
7638 void set(types::options e = types::nulltype);
7639 types type() const { return type_; }
7640 SRSASN_CODE pack(bit_ref& bref) const;
7641 SRSASN_CODE unpack(cbit_ref& bref);
7642 void to_json(json_writer& j) const;
7643 // getters
7644 gnb_cu_sys_info_s& gnb_cu_sys_info();
7645 available_plmn_list_l& available_plmn_list();
7646 extended_available_plmn_list_l& extended_available_plmn_list();
7647 iab_info_iab_donor_cu_s& iab_info_iab_donor_cu();
7648 available_sn_pn_id_list_l& available_sn_pn_id_list();
7649 unbounded_octstring<true>& mbs_broadcast_neighbour_cell_list();
7650 const gnb_cu_sys_info_s& gnb_cu_sys_info() const;
7651 const available_plmn_list_l& available_plmn_list() const;
7652 const extended_available_plmn_list_l& extended_available_plmn_list() const;
7653 const iab_info_iab_donor_cu_s& iab_info_iab_donor_cu() const;
7654 const available_sn_pn_id_list_l& available_sn_pn_id_list() const;
7655 const unbounded_octstring<true>& mbs_broadcast_neighbour_cell_list() const;
7656
7657 private:
7658 types type_;
7660 };
7661
7662 // members lookup methods
7663 static uint32_t idx_to_id(uint32_t idx);
7664 static bool is_id_valid(const uint32_t& id);
7665 static crit_e get_crit(const uint32_t& id);
7666 static ext_c get_ext(const uint32_t& id);
7667 static presence_e get_presence(const uint32_t& id);
7668};
7669
7671 bool gnb_cu_sys_info_present = false;
7672 bool available_plmn_list_present = false;
7673 bool extended_available_plmn_list_present = false;
7674 bool iab_info_iab_donor_cu_present = false;
7675 bool available_sn_pn_id_list_present = false;
7676 bool mbs_broadcast_neighbour_cell_list_present = false;
7677 gnb_cu_sys_info_s gnb_cu_sys_info;
7678 available_plmn_list_l available_plmn_list;
7679 extended_available_plmn_list_l extended_available_plmn_list;
7680 iab_info_iab_donor_cu_s iab_info_iab_donor_cu;
7681 available_sn_pn_id_list_l available_sn_pn_id_list;
7682 unbounded_octstring<true> mbs_broadcast_neighbour_cell_list;
7683
7684 // sequence methods
7685 SRSASN_CODE pack(bit_ref& bref) const;
7686 SRSASN_CODE unpack(cbit_ref& bref);
7687 void to_json(json_writer& j) const;
7688};
7689
7690// Cells-to-be-Activated-List-Item ::= SEQUENCE
7692 bool ext = false;
7693 bool nr_pci_present = false;
7694 bool ie_exts_present = false;
7695 nr_cgi_s nr_cgi;
7696 uint16_t nr_pci = 0;
7698 // ...
7699
7700 // sequence methods
7701 SRSASN_CODE pack(bit_ref& bref) const;
7702 SRSASN_CODE unpack(cbit_ref& bref);
7703 void to_json(json_writer& j) const;
7704};
7705
7706// IAB-Barred ::= ENUMERATED
7708 enum options { barred, not_barred, /*...*/ nulltype } value;
7709
7710 const char* to_string() const;
7711};
7713
7714// CellBarred ::= ENUMERATED
7716 enum options { barred, not_barred, /*...*/ nulltype } value;
7717
7718 const char* to_string() const;
7719};
7721
7722// Cells-to-be-Barred-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7724 // Extension ::= OPEN TYPE
7725 struct ext_c {
7726 struct types_opts {
7727 enum options { iab_barred, nulltype } value;
7728
7729 const char* to_string() const;
7730 };
7732
7733 // choice methods
7734 types type() const { return types::iab_barred; }
7735 SRSASN_CODE pack(bit_ref& bref) const;
7736 SRSASN_CODE unpack(cbit_ref& bref);
7737 void to_json(json_writer& j) const;
7738 // getters
7739 iab_barred_e& iab_barred() { return c; }
7740 const iab_barred_e& iab_barred() const { return c; }
7741
7742 private:
7743 iab_barred_e c;
7744 };
7745
7746 // members lookup methods
7747 static uint32_t idx_to_id(uint32_t idx);
7748 static bool is_id_valid(const uint32_t& id);
7749 static crit_e get_crit(const uint32_t& id);
7750 static ext_c get_ext(const uint32_t& id);
7751 static presence_e get_presence(const uint32_t& id);
7752};
7753
7754// Cells-to-be-Barred-Item ::= SEQUENCE
7756 nr_cgi_s nr_cgi;
7757 cell_barred_e cell_barred;
7759
7760 // sequence methods
7761 SRSASN_CODE pack(bit_ref& bref) const;
7762 SRSASN_CODE unpack(cbit_ref& bref);
7763 void to_json(json_writer& j) const;
7764};
7765
7766// Cells-to-be-Deactivated-List-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7768
7770
7771// Cells-to-be-Deactivated-List-Item ::= SEQUENCE
7773 bool ext = false;
7774 bool ie_exts_present = false;
7775 nr_cgi_s nr_cgi;
7777 // ...
7778
7779 // sequence methods
7780 SRSASN_CODE pack(bit_ref& bref) const;
7781 SRSASN_CODE unpack(cbit_ref& bref);
7782 void to_json(json_writer& j) const;
7783};
7784
7785// L1151Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7787
7788// L571Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7790
7792
7793// L1151Info ::= SEQUENCE
7796 enum options { scs15, scs120, /*...*/ nulltype } value;
7797 typedef uint8_t number_type;
7798
7799 const char* to_string() const;
7800 uint8_t to_number() const;
7801 };
7803
7804 // member variables
7805 bool ext = false;
7806 bool ie_ext_present = false;
7807 prach_scs_for_l1151_e_ prach_scs_for_l1151;
7808 uint16_t root_seq_idx = 0;
7810 // ...
7811
7812 // sequence methods
7813 SRSASN_CODE pack(bit_ref& bref) const;
7814 SRSASN_CODE unpack(cbit_ref& bref);
7815 void to_json(json_writer& j) const;
7816};
7817
7818// L139Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7820
7822
7823// L571Info ::= SEQUENCE
7826 enum options { scs30, scs120, /*...*/ scs480, nulltype } value;
7827 typedef uint16_t number_type;
7828
7829 const char* to_string() const;
7830 uint16_t to_number() const;
7831 };
7833
7834 // member variables
7835 bool ext = false;
7836 bool ie_ext_present = false;
7837 prach_scs_for_l571_e_ prach_scs_for_l571;
7838 uint16_t root_seq_idx = 0;
7840 // ...
7841
7842 // sequence methods
7843 SRSASN_CODE pack(bit_ref& bref) const;
7844 SRSASN_CODE unpack(cbit_ref& bref);
7845 void to_json(json_writer& j) const;
7846};
7847
7848// L839Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
7850
7851// FreqDomainLength-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
7853 // Value ::= OPEN TYPE
7854 struct value_c {
7855 struct types_opts {
7856 enum options { l571_info, l1151_info, nulltype } value;
7857 typedef uint16_t number_type;
7858
7859 const char* to_string() const;
7860 uint16_t to_number() const;
7861 };
7863
7864 // choice methods
7865 value_c() = default;
7866 void set(types::options e = types::nulltype);
7867 types type() const { return type_; }
7868 SRSASN_CODE pack(bit_ref& bref) const;
7869 SRSASN_CODE unpack(cbit_ref& bref);
7870 void to_json(json_writer& j) const;
7871 // getters
7872 l571_info_s& l571_info();
7873 l1151_info_s& l1151_info();
7874 const l571_info_s& l571_info() const;
7875 const l1151_info_s& l1151_info() const;
7876
7877 private:
7878 types type_;
7880 };
7881
7882 // members lookup methods
7883 static uint32_t idx_to_id(uint32_t idx);
7884 static bool is_id_valid(const uint32_t& id);
7885 static crit_e get_crit(const uint32_t& id);
7886 static value_c get_value(const uint32_t& id);
7887 static presence_e get_presence(const uint32_t& id);
7888};
7889
7890using l139_info_ext_ies_container = protocol_ext_container_empty_l;
7891
7892// L139Info ::= SEQUENCE
7895 enum options { scs15, scs30, scs60, scs120, /*...*/ scs480, scs960, nulltype } value;
7896 typedef uint16_t number_type;
7897
7898 const char* to_string() const;
7899 uint16_t to_number() const;
7900 };
7902
7903 // member variables
7904 bool ext = false;
7905 bool root_seq_idx_present = false;
7906 bool ie_ext_present = false;
7907 prach_scs_e_ prach_scs;
7908 uint8_t root_seq_idx = 0;
7910 // ...
7911
7912 // sequence methods
7913 SRSASN_CODE pack(bit_ref& bref) const;
7914 SRSASN_CODE unpack(cbit_ref& bref);
7915 void to_json(json_writer& j) const;
7916};
7917
7919
7920// L839Info ::= SEQUENCE
7923 enum options { unrestricted_set, restricted_set_type_a, restricted_set_type_b, /*...*/ nulltype } value;
7924
7925 const char* to_string() const;
7926 };
7928
7929 // member variables
7930 bool ext = false;
7931 bool ie_ext_present = false;
7932 uint16_t root_seq_idx = 0;
7933 restricted_set_cfg_e_ restricted_set_cfg;
7935 // ...
7936
7937 // sequence methods
7938 SRSASN_CODE pack(bit_ref& bref) const;
7939 SRSASN_CODE unpack(cbit_ref& bref);
7940 void to_json(json_writer& j) const;
7941};
7942
7943// FreqDomainLength ::= CHOICE
7945 struct types_opts {
7946 enum options { l839, l139, choice_ext, nulltype } value;
7947 typedef uint16_t number_type;
7948
7949 const char* to_string() const;
7950 uint16_t to_number() const;
7951 };
7953
7954 // choice methods
7955 freq_domain_len_c() = default;
7957 freq_domain_len_c& operator=(const freq_domain_len_c& other);
7958 ~freq_domain_len_c() { destroy_(); }
7959 void set(types::options e = types::nulltype);
7960 types type() const { return type_; }
7961 SRSASN_CODE pack(bit_ref& bref) const;
7962 SRSASN_CODE unpack(cbit_ref& bref);
7963 void to_json(json_writer& j) const;
7964 // getters
7965 l839_info_s& l839()
7966 {
7967 assert_choice_type(types::l839, type_, "FreqDomainLength");
7968 return c.get<l839_info_s>();
7969 }
7970 l139_info_s& l139()
7971 {
7972 assert_choice_type(types::l139, type_, "FreqDomainLength");
7973 return c.get<l139_info_s>();
7974 }
7975 protocol_ie_single_container_s<freq_domain_len_ext_ies_o>& choice_ext()
7976 {
7977 assert_choice_type(types::choice_ext, type_, "FreqDomainLength");
7978 return c.get<protocol_ie_single_container_s<freq_domain_len_ext_ies_o>>();
7979 }
7980 const l839_info_s& l839() const
7981 {
7982 assert_choice_type(types::l839, type_, "FreqDomainLength");
7983 return c.get<l839_info_s>();
7984 }
7985 const l139_info_s& l139() const
7986 {
7987 assert_choice_type(types::l139, type_, "FreqDomainLength");
7988 return c.get<l139_info_s>();
7989 }
7990 const protocol_ie_single_container_s<freq_domain_len_ext_ies_o>& choice_ext() const
7991 {
7992 assert_choice_type(types::choice_ext, type_, "FreqDomainLength");
7993 return c.get<protocol_ie_single_container_s<freq_domain_len_ext_ies_o>>();
7994 }
7995 l839_info_s& set_l839();
7996 l139_info_s& set_l139();
7997 protocol_ie_single_container_s<freq_domain_len_ext_ies_o>& set_choice_ext();
7998
7999private:
8000 types type_;
8001 choice_buffer_t<l139_info_s, l839_info_s, protocol_ie_single_container_s<freq_domain_len_ext_ies_o>> c;
8002
8003 void destroy_();
8004};
8005
8006// FreqInfoRel16-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8007using freq_info_rel16_ext_ies_o = protocol_ext_empty_o;
8008
8009// NRPRACHConfigItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8010using nr_prach_cfg_item_ext_ies_o = protocol_ext_empty_o;
8011
8012// FDD-InfoRel16-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8013using fdd_info_rel16_ext_ies_o = protocol_ext_empty_o;
8014
8015using freq_info_rel16_ext_ies_container = protocol_ext_container_empty_l;
8016
8017// FreqInfoRel16 ::= SEQUENCE
8019 bool ext = false;
8020 bool nr_arfcn_present = false;
8021 bool freq_shift7p5khz_present = false;
8022 bool ie_exts_present = false;
8023 uint32_t nr_arfcn = 0;
8024 freq_shift7p5khz_e freq_shift7p5khz;
8025 nr_carrier_list_l carrier_list;
8027 // ...
8028
8029 // sequence methods
8030 SRSASN_CODE pack(bit_ref& bref) const;
8031 SRSASN_CODE unpack(cbit_ref& bref);
8032 void to_json(json_writer& j) const;
8033};
8034
8036
8037// NRPRACHConfigItem ::= SEQUENCE
8040 enum options { one, two, four, eight, /*...*/ nulltype } value;
8041 typedef uint8_t number_type;
8042
8043 const char* to_string() const;
8044 uint8_t to_number() const;
8045 };
8048 enum options { one_eighth, one_fourth, one_half, one, two, four, eight, sixteen, /*...*/ nulltype } value;
8049 typedef float number_type;
8050
8051 const char* to_string() const;
8052 float to_number() const;
8053 const char* to_number_string() const;
8054 };
8056
8057 // member variables
8058 bool ext = false;
8059 bool ie_ext_present = false;
8060 nr_scs_e nr_scs;
8061 uint16_t prach_freq_startfrom_carrier = 0;
8062 prach_fdm_e_ prach_fdm;
8063 uint16_t prach_cfg_idx = 0;
8064 ssb_per_rach_occasion_e_ ssb_per_rach_occasion;
8065 freq_domain_len_c freq_domain_len;
8066 uint8_t zero_correl_zone_cfg = 0;
8068 // ...
8069
8070 // sequence methods
8071 SRSASN_CODE pack(bit_ref& bref) const;
8072 SRSASN_CODE unpack(cbit_ref& bref);
8073 void to_json(json_writer& j) const;
8074};
8075
8076// TDD-InfoRel16-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8078
8080
8081// FDD-InfoRel16 ::= SEQUENCE
8083 bool ext = false;
8084 bool ul_freq_info_present = false;
8085 bool sul_freq_info_present = false;
8086 bool ie_exts_present = false;
8087 freq_info_rel16_s ul_freq_info;
8088 freq_info_rel16_s sul_freq_info;
8090 // ...
8091
8092 // sequence methods
8093 SRSASN_CODE pack(bit_ref& bref) const;
8094 SRSASN_CODE unpack(cbit_ref& bref);
8095 void to_json(json_writer& j) const;
8096};
8097
8098// NR-ModeInfoRel16-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
8100
8101// NRPRACHConfig-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8103
8104// NRPRACHConfigList ::= SEQUENCE (SIZE (0..16)) OF NRPRACHConfigItem
8106
8107// SSB-PositionsInBurst-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
8109
8111
8112// TDD-InfoRel16 ::= SEQUENCE
8114 bool ext = false;
8115 bool tdd_freq_info_present = false;
8116 bool sul_freq_info_present = false;
8117 bool ie_exts_present = false;
8118 freq_info_rel16_s tdd_freq_info;
8119 freq_info_rel16_s sul_freq_info;
8120 unbounded_octstring<true> tdd_ul_dl_cfg_common_nr;
8122 // ...
8123
8124 // sequence methods
8125 SRSASN_CODE pack(bit_ref& bref) const;
8126 SRSASN_CODE unpack(cbit_ref& bref);
8127 void to_json(json_writer& j) const;
8128};
8129
8130// NR-ModeInfoRel16 ::= CHOICE
8132 struct types_opts {
8133 enum options { fdd, tdd, choice_ext, nulltype } value;
8134
8135 const char* to_string() const;
8136 };
8138
8139 // choice methods
8140 nr_mode_info_rel16_c() = default;
8142 nr_mode_info_rel16_c& operator=(const nr_mode_info_rel16_c& other);
8143 ~nr_mode_info_rel16_c() { destroy_(); }
8144 void set(types::options e = types::nulltype);
8145 types type() const { return type_; }
8146 SRSASN_CODE pack(bit_ref& bref) const;
8147 SRSASN_CODE unpack(cbit_ref& bref);
8148 void to_json(json_writer& j) const;
8149 // getters
8150 fdd_info_rel16_s& fdd()
8151 {
8152 assert_choice_type(types::fdd, type_, "NR-ModeInfoRel16");
8153 return c.get<fdd_info_rel16_s>();
8154 }
8155 tdd_info_rel16_s& tdd()
8156 {
8157 assert_choice_type(types::tdd, type_, "NR-ModeInfoRel16");
8158 return c.get<tdd_info_rel16_s>();
8159 }
8160 protocol_ie_single_container_s<nr_mode_info_rel16_ext_ies_o>& choice_ext()
8161 {
8162 assert_choice_type(types::choice_ext, type_, "NR-ModeInfoRel16");
8163 return c.get<protocol_ie_single_container_s<nr_mode_info_rel16_ext_ies_o>>();
8164 }
8165 const fdd_info_rel16_s& fdd() const
8166 {
8167 assert_choice_type(types::fdd, type_, "NR-ModeInfoRel16");
8168 return c.get<fdd_info_rel16_s>();
8169 }
8170 const tdd_info_rel16_s& tdd() const
8171 {
8172 assert_choice_type(types::tdd, type_, "NR-ModeInfoRel16");
8173 return c.get<tdd_info_rel16_s>();
8174 }
8175 const protocol_ie_single_container_s<nr_mode_info_rel16_ext_ies_o>& choice_ext() const
8176 {
8177 assert_choice_type(types::choice_ext, type_, "NR-ModeInfoRel16");
8178 return c.get<protocol_ie_single_container_s<nr_mode_info_rel16_ext_ies_o>>();
8179 }
8180 fdd_info_rel16_s& set_fdd();
8181 tdd_info_rel16_s& set_tdd();
8182 protocol_ie_single_container_s<nr_mode_info_rel16_ext_ies_o>& set_choice_ext();
8183
8184private:
8185 types type_;
8186 choice_buffer_t<fdd_info_rel16_s, protocol_ie_single_container_s<nr_mode_info_rel16_ext_ies_o>, tdd_info_rel16_s> c;
8187
8188 void destroy_();
8189};
8190
8191using nr_prach_cfg_ext_ies_container = protocol_ext_container_empty_l;
8192
8193// NRPRACHConfig ::= SEQUENCE
8195 bool ext = false;
8196 bool ul_prach_cfg_list_present = false;
8197 bool sul_prach_cfg_list_present = false;
8198 bool ie_ext_present = false;
8199 nr_prach_cfg_list_l ul_prach_cfg_list;
8200 nr_prach_cfg_list_l sul_prach_cfg_list;
8202 // ...
8203
8204 // sequence methods
8205 SRSASN_CODE pack(bit_ref& bref) const;
8206 SRSASN_CODE unpack(cbit_ref& bref);
8207 void to_json(json_writer& j) const;
8208};
8209
8210// NeighbourNR-CellsForSON-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8212
8213// SSB-PositionsInBurst ::= CHOICE
8215 struct types_opts {
8216 enum options { short_bitmap, medium_bitmap, long_bitmap, choice_ext, nulltype } value;
8217
8218 const char* to_string() const;
8219 };
8221
8222 // choice methods
8223 ssb_positions_in_burst_c() = default;
8225 ssb_positions_in_burst_c& operator=(const ssb_positions_in_burst_c& other);
8226 ~ssb_positions_in_burst_c() { destroy_(); }
8227 void set(types::options e = types::nulltype);
8228 types type() const { return type_; }
8229 SRSASN_CODE pack(bit_ref& bref) const;
8230 SRSASN_CODE unpack(cbit_ref& bref);
8231 void to_json(json_writer& j) const;
8232 // getters
8233 fixed_bitstring<4, false, true>& short_bitmap()
8234 {
8235 assert_choice_type(types::short_bitmap, type_, "SSB-PositionsInBurst");
8236 return c.get<fixed_bitstring<4, false, true>>();
8237 }
8238 fixed_bitstring<8, false, true>& medium_bitmap()
8239 {
8240 assert_choice_type(types::medium_bitmap, type_, "SSB-PositionsInBurst");
8241 return c.get<fixed_bitstring<8, false, true>>();
8242 }
8243 fixed_bitstring<64, false, true>& long_bitmap()
8244 {
8245 assert_choice_type(types::long_bitmap, type_, "SSB-PositionsInBurst");
8246 return c.get<fixed_bitstring<64, false, true>>();
8247 }
8248 protocol_ie_single_container_s<ssb_positions_in_burst_ext_ies_o>& choice_ext()
8249 {
8250 assert_choice_type(types::choice_ext, type_, "SSB-PositionsInBurst");
8251 return c.get<protocol_ie_single_container_s<ssb_positions_in_burst_ext_ies_o>>();
8252 }
8253 const fixed_bitstring<4, false, true>& short_bitmap() const
8254 {
8255 assert_choice_type(types::short_bitmap, type_, "SSB-PositionsInBurst");
8256 return c.get<fixed_bitstring<4, false, true>>();
8257 }
8258 const fixed_bitstring<8, false, true>& medium_bitmap() const
8259 {
8260 assert_choice_type(types::medium_bitmap, type_, "SSB-PositionsInBurst");
8261 return c.get<fixed_bitstring<8, false, true>>();
8262 }
8263 const fixed_bitstring<64, false, true>& long_bitmap() const
8264 {
8265 assert_choice_type(types::long_bitmap, type_, "SSB-PositionsInBurst");
8266 return c.get<fixed_bitstring<64, false, true>>();
8267 }
8268 const protocol_ie_single_container_s<ssb_positions_in_burst_ext_ies_o>& choice_ext() const
8269 {
8270 assert_choice_type(types::choice_ext, type_, "SSB-PositionsInBurst");
8271 return c.get<protocol_ie_single_container_s<ssb_positions_in_burst_ext_ies_o>>();
8272 }
8273 fixed_bitstring<4, false, true>& set_short_bitmap();
8274 fixed_bitstring<8, false, true>& set_medium_bitmap();
8275 fixed_bitstring<64, false, true>& set_long_bitmap();
8276 protocol_ie_single_container_s<ssb_positions_in_burst_ext_ies_o>& set_choice_ext();
8277
8278private:
8279 types type_;
8280 choice_buffer_t<fixed_bitstring<64, false, true>, protocol_ie_single_container_s<ssb_positions_in_burst_ext_ies_o>> c;
8281
8282 void destroy_();
8283};
8284
8285using neighbour_nr_cells_for_son_item_ext_ies_container = protocol_ext_container_empty_l;
8286
8287// NeighbourNR-CellsForSON-Item ::= SEQUENCE
8289 bool ext = false;
8290 bool nr_mode_info_rel16_present = false;
8291 bool ssb_positions_in_burst_present = false;
8292 bool nr_prach_cfg_present = false;
8293 bool ie_exts_present = false;
8294 nr_cgi_s nr_cgi;
8295 nr_mode_info_rel16_c nr_mode_info_rel16;
8296 ssb_positions_in_burst_c ssb_positions_in_burst;
8297 nr_prach_cfg_s nr_prach_cfg;
8299 // ...
8300
8301 // sequence methods
8302 SRSASN_CODE pack(bit_ref& bref) const;
8303 SRSASN_CODE unpack(cbit_ref& bref);
8304 void to_json(json_writer& j) const;
8305};
8306
8307// CellsForSON-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8309
8310// NeighbourNR-CellsForSON-List ::= SEQUENCE (SIZE (1..32)) OF NeighbourNR-CellsForSON-Item
8312
8314
8315// CellsForSON-Item ::= SEQUENCE
8317 bool ext = false;
8318 bool ie_exts_present = false;
8319 nr_cgi_s nr_cgi;
8320 neighbour_nr_cells_for_son_list_l neighbour_nr_cells_for_son_list;
8322 // ...
8323
8324 // sequence methods
8325 SRSASN_CODE pack(bit_ref& bref) const;
8326 SRSASN_CODE unpack(cbit_ref& bref);
8327 void to_json(json_writer& j) const;
8328};
8329
8330// CellsForSON-List ::= SEQUENCE (SIZE (1..256)) OF CellsForSON-Item
8332
8333// DU-RX-MT-RX-Extend ::= ENUMERATED
8335 enum options { supported, not_supported, supported_and_fdm_required, /*...*/ nulltype } value;
8336
8337 const char* to_string() const;
8338};
8340
8341// DU-RX-MT-TX-Extend ::= ENUMERATED
8343 enum options { supported, not_supported, supported_and_fdm_required, /*...*/ nulltype } value;
8344
8345 const char* to_string() const;
8346};
8348
8349// DU-TX-MT-RX-Extend ::= ENUMERATED
8351 enum options { supported, not_supported, supported_and_fdm_required, /*...*/ nulltype } value;
8352
8353 const char* to_string() const;
8354};
8356
8357// DU-TX-MT-TX-Extend ::= ENUMERATED
8359 enum options { supported, not_supported, supported_and_fdm_required, /*...*/ nulltype } value;
8360
8361 const char* to_string() const;
8362};
8364
8365// DU-RX-MT-RX ::= ENUMERATED
8367 enum options { supported, not_supported, nulltype } value;
8368
8369 const char* to_string() const;
8370};
8372
8373// DU-RX-MT-TX ::= ENUMERATED
8375 enum options { supported, not_supported, nulltype } value;
8376
8377 const char* to_string() const;
8378};
8380
8381// DU-TX-MT-RX ::= ENUMERATED
8383 enum options { supported, not_supported, nulltype } value;
8384
8385 const char* to_string() const;
8386};
8388
8389// DU-TX-MT-TX ::= ENUMERATED
8391 enum options { supported, not_supported, nulltype } value;
8392
8393 const char* to_string() const;
8394};
8396
8397// IAB-MT-Cell-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8399 // Extension ::= OPEN TYPE
8400 struct ext_c {
8401 struct types_opts {
8402 enum options { du_rx_mt_rx_extend, du_tx_mt_tx_extend, du_rx_mt_tx_extend, du_tx_mt_rx_extend, nulltype } value;
8403
8404 const char* to_string() const;
8405 };
8407
8408 // choice methods
8409 ext_c() = default;
8410 void set(types::options e = types::nulltype);
8411 types type() const { return type_; }
8412 SRSASN_CODE pack(bit_ref& bref) const;
8413 SRSASN_CODE unpack(cbit_ref& bref);
8414 void to_json(json_writer& j) const;
8415 // getters
8416 du_rx_mt_rx_extend_e& du_rx_mt_rx_extend();
8417 du_tx_mt_tx_extend_e& du_tx_mt_tx_extend();
8418 du_rx_mt_tx_extend_e& du_rx_mt_tx_extend();
8419 du_tx_mt_rx_extend_e& du_tx_mt_rx_extend();
8420 const du_rx_mt_rx_extend_e& du_rx_mt_rx_extend() const;
8421 const du_tx_mt_tx_extend_e& du_tx_mt_tx_extend() const;
8422 const du_rx_mt_tx_extend_e& du_rx_mt_tx_extend() const;
8423 const du_tx_mt_rx_extend_e& du_tx_mt_rx_extend() const;
8424
8425 private:
8426 types type_;
8428 };
8429
8430 // members lookup methods
8431 static uint32_t idx_to_id(uint32_t idx);
8432 static bool is_id_valid(const uint32_t& id);
8433 static crit_e get_crit(const uint32_t& id);
8434 static ext_c get_ext(const uint32_t& id);
8435 static presence_e get_presence(const uint32_t& id);
8436};
8437
8439 bool du_rx_mt_rx_extend_present = false;
8440 bool du_tx_mt_tx_extend_present = false;
8441 bool du_rx_mt_tx_extend_present = false;
8442 bool du_tx_mt_rx_extend_present = false;
8443 du_rx_mt_rx_extend_e du_rx_mt_rx_extend;
8444 du_tx_mt_tx_extend_e du_tx_mt_tx_extend;
8445 du_rx_mt_tx_extend_e du_rx_mt_tx_extend;
8446 du_tx_mt_rx_extend_e du_tx_mt_rx_extend;
8447
8448 // sequence methods
8449 SRSASN_CODE pack(bit_ref& bref) const;
8450 SRSASN_CODE unpack(cbit_ref& bref);
8451 void to_json(json_writer& j) const;
8452};
8453
8454// IAB-MT-Cell-List-Item ::= SEQUENCE
8456 bool ie_exts_present = false;
8458 du_rx_mt_rx_e du_rx_mt_rx;
8459 du_tx_mt_tx_e du_tx_mt_tx;
8460 du_rx_mt_tx_e du_rx_mt_tx;
8461 du_tx_mt_rx_e du_tx_mt_rx;
8463
8464 // sequence methods
8465 SRSASN_CODE pack(bit_ref& bref) const;
8466 SRSASN_CODE unpack(cbit_ref& bref);
8467 void to_json(json_writer& j) const;
8468};
8469
8470// IAB-MT-Cell-List ::= SEQUENCE (SIZE (1..32)) OF IAB-MT-Cell-List-Item
8472
8473// MultiplexingInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8475
8476// Child-Node-Cells-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8478
8480
8481// MultiplexingInfo ::= SEQUENCE
8483 bool ie_exts_present = false;
8484 iab_mt_cell_list_l iab_mt_cell_list;
8486
8487 // sequence methods
8488 SRSASN_CODE pack(bit_ref& bref) const;
8489 SRSASN_CODE unpack(cbit_ref& bref);
8490 void to_json(json_writer& j) const;
8491};
8492
8494
8495// Child-Node-Cells-List-Item ::= SEQUENCE
8497 bool iab_du_cell_res_cfg_mode_info_present = false;
8498 bool iab_stc_info_present = false;
8499 bool mux_info_present = false;
8500 bool ie_exts_present = false;
8501 nr_cgi_s nr_cgi;
8502 iab_du_cell_res_cfg_mode_info_c iab_du_cell_res_cfg_mode_info;
8503 iab_stc_info_s iab_stc_info;
8504 unbounded_octstring<true> rach_cfg_common;
8505 unbounded_octstring<true> rach_cfg_common_iab;
8506 unbounded_octstring<true> csi_rs_cfg;
8508 unbounded_octstring<true> pdcch_cfg_sib1;
8509 unbounded_octstring<true> scs_common;
8510 mux_info_s mux_info;
8512
8513 // sequence methods
8514 SRSASN_CODE pack(bit_ref& bref) const;
8515 SRSASN_CODE unpack(cbit_ref& bref);
8516 void to_json(json_writer& j) const;
8517};
8518
8519// Child-Node-Cells-List ::= SEQUENCE (SIZE (1..1024)) OF Child-Node-Cells-List-Item
8521
8522// Child-Nodes-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8524
8526
8527// Child-Nodes-List-Item ::= SEQUENCE
8529 bool ie_exts_present = false;
8530 uint64_t gnb_cu_ue_f1ap_id = 0;
8531 uint64_t gnb_du_ue_f1ap_id = 0;
8532 child_node_cells_list_l child_node_cells_list;
8534
8535 // sequence methods
8536 SRSASN_CODE pack(bit_ref& bref) const;
8537 SRSASN_CODE unpack(cbit_ref& bref);
8538 void to_json(json_writer& j) const;
8539};
8540
8541// Child-Nodes-List ::= SEQUENCE (SIZE (1..1024)) OF Child-Nodes-List-Item
8543
8544// TRP-Beam-Power-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8546
8548
8549// TRP-Beam-Power-Item ::= SEQUENCE
8551 bool ext = false;
8552 bool prs_res_set_id_present = false;
8553 bool relative_pwr_fine_present = false;
8554 bool ie_exts_present = false;
8555 uint8_t prs_res_set_id = 0;
8556 uint8_t prs_res_id = 0;
8557 uint8_t relative_pwr = 0;
8558 uint8_t relative_pwr_fine = 0;
8560 // ...
8561
8562 // sequence methods
8563 SRSASN_CODE pack(bit_ref& bref) const;
8564 SRSASN_CODE unpack(cbit_ref& bref);
8565 void to_json(json_writer& j) const;
8566};
8567
8568// TRP-ElevationAngleList-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8570
8571// TRP-BeamAntennaAnglesList-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8573
8575
8576// TRP-ElevationAngleList-Item ::= SEQUENCE
8579
8580 // member variables
8581 bool ext = false;
8582 bool trp_elevation_angle_fine_present = false;
8583 bool ie_exts_present = false;
8584 uint8_t trp_elevation_angle = 0;
8585 uint8_t trp_elevation_angle_fine = 0;
8586 trp_beam_pwr_list_l_ trp_beam_pwr_list;
8588 // ...
8589
8590 // sequence methods
8591 SRSASN_CODE pack(bit_ref& bref) const;
8592 SRSASN_CODE unpack(cbit_ref& bref);
8593 void to_json(json_writer& j) const;
8594};
8595
8597
8598// TRP-BeamAntennaAnglesList-Item ::= SEQUENCE
8601
8602 // member variables
8603 bool ext = false;
8604 bool trp_azimuth_angle_fine_present = false;
8605 bool ie_exts_present = false;
8606 uint16_t trp_azimuth_angle = 0;
8607 uint8_t trp_azimuth_angle_fine = 0;
8608 trp_elevation_angle_list_l_ trp_elevation_angle_list;
8610 // ...
8611
8612 // sequence methods
8613 SRSASN_CODE pack(bit_ref& bref) const;
8614 SRSASN_CODE unpack(cbit_ref& bref);
8615 void to_json(json_writer& j) const;
8616};
8617
8618// TRP-BeamAntennaAngles ::= SEQUENCE (SIZE (1..3600)) OF TRP-BeamAntennaAnglesList-Item
8620
8621// TRP-BeamAntennaExplicitInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8623
8624// Choice-TRP-Beam-Info-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
8626
8628
8629// TRP-BeamAntennaExplicitInformation ::= SEQUENCE
8631 bool ext = false;
8632 bool lcs_to_gcs_translation_present = false;
8633 bool ie_exts_present = false;
8634 trp_beam_ant_angles_l trp_beam_ant_angles;
8635 lcs_to_gcs_translation_s lcs_to_gcs_translation;
8637 // ...
8638
8639 // sequence methods
8640 SRSASN_CODE pack(bit_ref& bref) const;
8641 SRSASN_CODE unpack(cbit_ref& bref);
8642 void to_json(json_writer& j) const;
8643};
8644
8645// Choice-TRP-Beam-Antenna-Info-Item ::= CHOICE
8647 struct types_opts {
8648 enum options { ref, explicit_type, no_change, choice_ext, nulltype } value;
8649
8650 const char* to_string() const;
8651 };
8653
8654 // choice methods
8658 ~choice_trp_beam_ant_info_item_c() { destroy_(); }
8659 void set(types::options e = types::nulltype);
8660 types type() const { return type_; }
8661 SRSASN_CODE pack(bit_ref& bref) const;
8662 SRSASN_CODE unpack(cbit_ref& bref);
8663 void to_json(json_writer& j) const;
8664 // getters
8665 uint32_t& ref()
8666 {
8667 assert_choice_type(types::ref, type_, "Choice-TRP-Beam-Antenna-Info-Item");
8668 return c.get<uint32_t>();
8669 }
8670 trp_beam_ant_explicit_info_s& explicit_type()
8671 {
8672 assert_choice_type(types::explicit_type, type_, "Choice-TRP-Beam-Antenna-Info-Item");
8673 return c.get<trp_beam_ant_explicit_info_s>();
8674 }
8675 protocol_ie_single_container_s<choice_trp_beam_info_item_ext_ies_o>& choice_ext()
8676 {
8677 assert_choice_type(types::choice_ext, type_, "Choice-TRP-Beam-Antenna-Info-Item");
8678 return c.get<protocol_ie_single_container_s<choice_trp_beam_info_item_ext_ies_o>>();
8679 }
8680 const uint32_t& ref() const
8681 {
8682 assert_choice_type(types::ref, type_, "Choice-TRP-Beam-Antenna-Info-Item");
8683 return c.get<uint32_t>();
8684 }
8685 const trp_beam_ant_explicit_info_s& explicit_type() const
8686 {
8687 assert_choice_type(types::explicit_type, type_, "Choice-TRP-Beam-Antenna-Info-Item");
8688 return c.get<trp_beam_ant_explicit_info_s>();
8689 }
8690 const protocol_ie_single_container_s<choice_trp_beam_info_item_ext_ies_o>& choice_ext() const
8691 {
8692 assert_choice_type(types::choice_ext, type_, "Choice-TRP-Beam-Antenna-Info-Item");
8693 return c.get<protocol_ie_single_container_s<choice_trp_beam_info_item_ext_ies_o>>();
8694 }
8695 uint32_t& set_ref();
8696 trp_beam_ant_explicit_info_s& set_explicit_type();
8697 void set_no_change();
8698 protocol_ie_single_container_s<choice_trp_beam_info_item_ext_ies_o>& set_choice_ext();
8699
8700private:
8701 types type_;
8702 choice_buffer_t<protocol_ie_single_container_s<choice_trp_beam_info_item_ext_ies_o>, trp_beam_ant_explicit_info_s> c;
8703
8704 void destroy_();
8705};
8706
8707// CHOtrigger-InterDU ::= ENUMERATED
8709 enum options { cho_initiation, cho_replace, /*...*/ nulltype } value;
8710
8711 const char* to_string() const;
8712};
8714
8715// ConditionalInterDUMobilityInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8717 // Extension ::= OPEN TYPE
8718 struct ext_c {
8719 struct types_opts {
8720 enum options { estimated_arrival_probability, nulltype } value;
8721 typedef uint8_t number_type;
8722
8723 const char* to_string() const;
8724 uint8_t to_number() const;
8725 };
8727
8728 // choice methods
8729 types type() const { return types::estimated_arrival_probability; }
8730 SRSASN_CODE pack(bit_ref& bref) const;
8731 SRSASN_CODE unpack(cbit_ref& bref);
8732 void to_json(json_writer& j) const;
8733 // getters
8734 uint8_t& estimated_arrival_probability() { return c; }
8735 const uint8_t& estimated_arrival_probability() const { return c; }
8736
8737 private:
8738 uint8_t c;
8739 };
8740
8741 // members lookup methods
8742 static uint32_t idx_to_id(uint32_t idx);
8743 static bool is_id_valid(const uint32_t& id);
8744 static crit_e get_crit(const uint32_t& id);
8745 static ext_c get_ext(const uint32_t& id);
8746 static presence_e get_presence(const uint32_t& id);
8747};
8748
8749// ConditionalInterDUMobilityInformation ::= SEQUENCE
8751 bool ext = false;
8752 bool target_gnb_du_ue_f1ap_id_present = false;
8753 ch_otrigger_inter_du_e cho_trigger;
8754 uint64_t target_gnb_du_ue_f1ap_id = 0;
8756 // ...
8757
8758 // sequence methods
8759 SRSASN_CODE pack(bit_ref& bref) const;
8760 SRSASN_CODE unpack(cbit_ref& bref);
8761 void to_json(json_writer& j) const;
8762};
8763
8764// TargetCellList-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8766
8768
8769// TargetCellList-Item ::= SEQUENCE
8771 bool ie_exts_present = false;
8772 nr_cgi_s target_cell;
8774
8775 // sequence methods
8776 SRSASN_CODE pack(bit_ref& bref) const;
8777 SRSASN_CODE unpack(cbit_ref& bref);
8778 void to_json(json_writer& j) const;
8779};
8780
8781// CHOtrigger-IntraDU ::= ENUMERATED
8783 enum options { cho_initiation, cho_replace, cho_cancel, /*...*/ nulltype } value;
8784
8785 const char* to_string() const;
8786};
8788
8789// ConditionalIntraDUMobilityInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8791 // Extension ::= OPEN TYPE
8792 struct ext_c {
8793 struct types_opts {
8794 enum options { estimated_arrival_probability, nulltype } value;
8795 typedef uint8_t number_type;
8796
8797 const char* to_string() const;
8798 uint8_t to_number() const;
8799 };
8801
8802 // choice methods
8803 types type() const { return types::estimated_arrival_probability; }
8804 SRSASN_CODE pack(bit_ref& bref) const;
8805 SRSASN_CODE unpack(cbit_ref& bref);
8806 void to_json(json_writer& j) const;
8807 // getters
8808 uint8_t& estimated_arrival_probability() { return c; }
8809 const uint8_t& estimated_arrival_probability() const { return c; }
8810
8811 private:
8812 uint8_t c;
8813 };
8814
8815 // members lookup methods
8816 static uint32_t idx_to_id(uint32_t idx);
8817 static bool is_id_valid(const uint32_t& id);
8818 static crit_e get_crit(const uint32_t& id);
8819 static ext_c get_ext(const uint32_t& id);
8820 static presence_e get_presence(const uint32_t& id);
8821};
8822
8823// TargetCellList ::= SEQUENCE (SIZE (1..8)) OF TargetCellList-Item
8824using target_cell_list_l = dyn_array<target_cell_list_item_s>;
8825
8826// ConditionalIntraDUMobilityInformation ::= SEQUENCE
8828 bool ext = false;
8829 ch_otrigger_intra_du_e cho_trigger;
8830 target_cell_list_l target_cells_tocancel;
8832 // ...
8833
8834 // sequence methods
8835 SRSASN_CODE pack(bit_ref& bref) const;
8836 SRSASN_CODE unpack(cbit_ref& bref);
8837 void to_json(json_writer& j) const;
8838};
8839
8840// SSBCoverageModification-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8842
8844
8845// SSBCoverageModification-Item ::= SEQUENCE
8847 bool ext = false;
8848 bool ie_exts_present = false;
8849 uint8_t ssb_idx = 0;
8850 uint8_t ssb_coverage_state = 0;
8852 // ...
8853
8854 // sequence methods
8855 SRSASN_CODE pack(bit_ref& bref) const;
8856 SRSASN_CODE unpack(cbit_ref& bref);
8857 void to_json(json_writer& j) const;
8858};
8859
8860// Coverage-Modification-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8862
8863// SSBCoverageModification-List ::= SEQUENCE (SIZE (1..64)) OF SSBCoverageModification-Item
8865
8867
8868// Coverage-Modification-Item ::= SEQUENCE
8870 bool ext = false;
8871 bool ie_ext_present = false;
8872 nr_cgi_s nr_cgi;
8873 uint8_t cell_coverage_state = 0;
8874 ssb_coverage_mod_list_l ssb_coverage_mod_list;
8876 // ...
8877
8878 // sequence methods
8879 SRSASN_CODE pack(bit_ref& bref) const;
8880 SRSASN_CODE unpack(cbit_ref& bref);
8881 void to_json(json_writer& j) const;
8882};
8883
8884// Coverage-Modification-List ::= SEQUENCE (SIZE (1..512)) OF Coverage-Modification-Item
8886
8887// Coverage-Modification-Notification-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8889
8891
8892// Coverage-Modification-Notification ::= SEQUENCE
8894 bool ext = false;
8895 bool ie_exts_present = false;
8896 coverage_mod_list_l coverage_mod_list;
8898 // ...
8899
8900 // sequence methods
8901 SRSASN_CODE pack(bit_ref& bref) const;
8902 SRSASN_CODE unpack(cbit_ref& bref);
8903 void to_json(json_writer& j) const;
8904};
8905
8906// DL-PRS-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
8908
8910
8911// DL-PRS ::= SEQUENCE
8912struct dl_prs_s {
8913 bool dl_prs_res_id_present = false;
8914 bool ie_exts_present = false;
8915 uint16_t prsid = 0;
8916 uint8_t dl_prs_res_set_id = 0;
8917 uint8_t dl_prs_res_id = 0;
8919
8920 // sequence methods
8921 SRSASN_CODE pack(bit_ref& bref) const;
8922 SRSASN_CODE unpack(cbit_ref& bref);
8923 void to_json(json_writer& j) const;
8924};
8925
8926// DL-PRSMutingPattern-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
8928
8929// DL-PRSMutingPattern ::= CHOICE
8931 struct types_opts {
8932 enum options { two, four, six, eight, sixteen, thirty_two, choice_ext, nulltype } value;
8933
8934 const char* to_string() const;
8935 };
8937
8938 // choice methods
8939 dl_prs_muting_pattern_c() = default;
8941 dl_prs_muting_pattern_c& operator=(const dl_prs_muting_pattern_c& other);
8942 ~dl_prs_muting_pattern_c() { destroy_(); }
8943 void set(types::options e = types::nulltype);
8944 types type() const { return type_; }
8945 SRSASN_CODE pack(bit_ref& bref) const;
8946 SRSASN_CODE unpack(cbit_ref& bref);
8947 void to_json(json_writer& j) const;
8948 // getters
8950 {
8951 assert_choice_type(types::two, type_, "DL-PRSMutingPattern");
8952 return c.get<fixed_bitstring<2, false, true>>();
8953 }
8954 fixed_bitstring<4, false, true>& four()
8955 {
8956 assert_choice_type(types::four, type_, "DL-PRSMutingPattern");
8957 return c.get<fixed_bitstring<4, false, true>>();
8958 }
8959 fixed_bitstring<6, false, true>& six()
8960 {
8961 assert_choice_type(types::six, type_, "DL-PRSMutingPattern");
8962 return c.get<fixed_bitstring<6, false, true>>();
8963 }
8964 fixed_bitstring<8, false, true>& eight()
8965 {
8966 assert_choice_type(types::eight, type_, "DL-PRSMutingPattern");
8967 return c.get<fixed_bitstring<8, false, true>>();
8968 }
8969 fixed_bitstring<16, false, true>& sixteen()
8970 {
8971 assert_choice_type(types::sixteen, type_, "DL-PRSMutingPattern");
8972 return c.get<fixed_bitstring<16, false, true>>();
8973 }
8974 fixed_bitstring<32, false, true>& thirty_two()
8975 {
8976 assert_choice_type(types::thirty_two, type_, "DL-PRSMutingPattern");
8977 return c.get<fixed_bitstring<32, false, true>>();
8978 }
8979 protocol_ie_single_container_s<dl_prs_muting_pattern_ext_ies_o>& choice_ext()
8980 {
8981 assert_choice_type(types::choice_ext, type_, "DL-PRSMutingPattern");
8982 return c.get<protocol_ie_single_container_s<dl_prs_muting_pattern_ext_ies_o>>();
8983 }
8984 const fixed_bitstring<2, false, true>& two() const
8985 {
8986 assert_choice_type(types::two, type_, "DL-PRSMutingPattern");
8987 return c.get<fixed_bitstring<2, false, true>>();
8988 }
8989 const fixed_bitstring<4, false, true>& four() const
8990 {
8991 assert_choice_type(types::four, type_, "DL-PRSMutingPattern");
8992 return c.get<fixed_bitstring<4, false, true>>();
8993 }
8994 const fixed_bitstring<6, false, true>& six() const
8995 {
8996 assert_choice_type(types::six, type_, "DL-PRSMutingPattern");
8997 return c.get<fixed_bitstring<6, false, true>>();
8998 }
8999 const fixed_bitstring<8, false, true>& eight() const
9000 {
9001 assert_choice_type(types::eight, type_, "DL-PRSMutingPattern");
9002 return c.get<fixed_bitstring<8, false, true>>();
9003 }
9004 const fixed_bitstring<16, false, true>& sixteen() const
9005 {
9006 assert_choice_type(types::sixteen, type_, "DL-PRSMutingPattern");
9007 return c.get<fixed_bitstring<16, false, true>>();
9008 }
9009 const fixed_bitstring<32, false, true>& thirty_two() const
9010 {
9011 assert_choice_type(types::thirty_two, type_, "DL-PRSMutingPattern");
9012 return c.get<fixed_bitstring<32, false, true>>();
9013 }
9014 const protocol_ie_single_container_s<dl_prs_muting_pattern_ext_ies_o>& choice_ext() const
9015 {
9016 assert_choice_type(types::choice_ext, type_, "DL-PRSMutingPattern");
9017 return c.get<protocol_ie_single_container_s<dl_prs_muting_pattern_ext_ies_o>>();
9018 }
9019 fixed_bitstring<2, false, true>& set_two();
9020 fixed_bitstring<4, false, true>& set_four();
9021 fixed_bitstring<6, false, true>& set_six();
9022 fixed_bitstring<8, false, true>& set_eight();
9023 fixed_bitstring<16, false, true>& set_sixteen();
9024 fixed_bitstring<32, false, true>& set_thirty_two();
9025 protocol_ie_single_container_s<dl_prs_muting_pattern_ext_ies_o>& set_choice_ext();
9026
9027private:
9028 types type_;
9029 choice_buffer_t<fixed_bitstring<32, false, true>, protocol_ie_single_container_s<dl_prs_muting_pattern_ext_ies_o>> c;
9030
9031 void destroy_();
9032};
9033
9034// DL-PRSResourceARPLocation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
9035using dl_prs_res_arp_location_ext_ies_o = protocol_ies_empty_o;
9036
9037// DL-PRSResourceARPLocation ::= CHOICE
9039 struct types_opts {
9040 enum options { relative_geodetic_location, relative_cartesian_location, choice_ext, nulltype } value;
9041
9042 const char* to_string() const;
9043 };
9045
9046 // choice methods
9047 dl_prs_res_arp_location_c() = default;
9050 ~dl_prs_res_arp_location_c() { destroy_(); }
9051 void set(types::options e = types::nulltype);
9052 types type() const { return type_; }
9053 SRSASN_CODE pack(bit_ref& bref) const;
9054 SRSASN_CODE unpack(cbit_ref& bref);
9055 void to_json(json_writer& j) const;
9056 // getters
9057 relative_geodetic_location_s& relative_geodetic_location()
9058 {
9059 assert_choice_type(types::relative_geodetic_location, type_, "DL-PRSResourceARPLocation");
9060 return c.get<relative_geodetic_location_s>();
9061 }
9062 relative_cartesian_location_s& relative_cartesian_location()
9063 {
9064 assert_choice_type(types::relative_cartesian_location, type_, "DL-PRSResourceARPLocation");
9065 return c.get<relative_cartesian_location_s>();
9066 }
9067 protocol_ie_single_container_s<dl_prs_res_arp_location_ext_ies_o>& choice_ext()
9068 {
9069 assert_choice_type(types::choice_ext, type_, "DL-PRSResourceARPLocation");
9070 return c.get<protocol_ie_single_container_s<dl_prs_res_arp_location_ext_ies_o>>();
9071 }
9072 const relative_geodetic_location_s& relative_geodetic_location() const
9073 {
9074 assert_choice_type(types::relative_geodetic_location, type_, "DL-PRSResourceARPLocation");
9075 return c.get<relative_geodetic_location_s>();
9076 }
9077 const relative_cartesian_location_s& relative_cartesian_location() const
9078 {
9079 assert_choice_type(types::relative_cartesian_location, type_, "DL-PRSResourceARPLocation");
9080 return c.get<relative_cartesian_location_s>();
9081 }
9082 const protocol_ie_single_container_s<dl_prs_res_arp_location_ext_ies_o>& choice_ext() const
9083 {
9084 assert_choice_type(types::choice_ext, type_, "DL-PRSResourceARPLocation");
9085 return c.get<protocol_ie_single_container_s<dl_prs_res_arp_location_ext_ies_o>>();
9086 }
9087 relative_geodetic_location_s& set_relative_geodetic_location();
9088 relative_cartesian_location_s& set_relative_cartesian_location();
9089 protocol_ie_single_container_s<dl_prs_res_arp_location_ext_ies_o>& set_choice_ext();
9090
9091private:
9092 types type_;
9093 choice_buffer_t<protocol_ie_single_container_s<dl_prs_res_arp_location_ext_ies_o>,
9094 relative_cartesian_location_s,
9095 relative_geodetic_location_s>
9096 c;
9097
9098 void destroy_();
9099};
9100
9101// DL-PRSResourceSetARPLocation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
9102using dl_prs_res_set_arp_location_ext_ies_o = protocol_ies_empty_o;
9103
9104// DL-PRSResourceSetARPLocation ::= CHOICE
9106 struct types_opts {
9107 enum options { relative_geodetic_location, relative_cartesian_location, choice_ext, nulltype } value;
9108
9109 const char* to_string() const;
9110 };
9112
9113 // choice methods
9117 ~dl_prs_res_set_arp_location_c() { destroy_(); }
9118 void set(types::options e = types::nulltype);
9119 types type() const { return type_; }
9120 SRSASN_CODE pack(bit_ref& bref) const;
9121 SRSASN_CODE unpack(cbit_ref& bref);
9122 void to_json(json_writer& j) const;
9123 // getters
9124 relative_geodetic_location_s& relative_geodetic_location()
9125 {
9126 assert_choice_type(types::relative_geodetic_location, type_, "DL-PRSResourceSetARPLocation");
9127 return c.get<relative_geodetic_location_s>();
9128 }
9129 relative_cartesian_location_s& relative_cartesian_location()
9130 {
9131 assert_choice_type(types::relative_cartesian_location, type_, "DL-PRSResourceSetARPLocation");
9132 return c.get<relative_cartesian_location_s>();
9133 }
9134 protocol_ie_single_container_s<dl_prs_res_set_arp_location_ext_ies_o>& choice_ext()
9135 {
9136 assert_choice_type(types::choice_ext, type_, "DL-PRSResourceSetARPLocation");
9137 return c.get<protocol_ie_single_container_s<dl_prs_res_set_arp_location_ext_ies_o>>();
9138 }
9139 const relative_geodetic_location_s& relative_geodetic_location() const
9140 {
9141 assert_choice_type(types::relative_geodetic_location, type_, "DL-PRSResourceSetARPLocation");
9142 return c.get<relative_geodetic_location_s>();
9143 }
9144 const relative_cartesian_location_s& relative_cartesian_location() const
9145 {
9146 assert_choice_type(types::relative_cartesian_location, type_, "DL-PRSResourceSetARPLocation");
9147 return c.get<relative_cartesian_location_s>();
9148 }
9149 const protocol_ie_single_container_s<dl_prs_res_set_arp_location_ext_ies_o>& choice_ext() const
9150 {
9151 assert_choice_type(types::choice_ext, type_, "DL-PRSResourceSetARPLocation");
9152 return c.get<protocol_ie_single_container_s<dl_prs_res_set_arp_location_ext_ies_o>>();
9153 }
9154 relative_geodetic_location_s& set_relative_geodetic_location();
9155 relative_cartesian_location_s& set_relative_cartesian_location();
9156 protocol_ie_single_container_s<dl_prs_res_set_arp_location_ext_ies_o>& set_choice_ext();
9157
9158private:
9159 types type_;
9160 choice_buffer_t<protocol_ie_single_container_s<dl_prs_res_set_arp_location_ext_ies_o>,
9161 relative_cartesian_location_s,
9162 relative_geodetic_location_s>
9163 c;
9164
9165 void destroy_();
9166};
9167
9168// DL-UP-TNL-Address-to-Update-List-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9169using dl_up_tnl_address_to_upd_list_item_ext_ies_o = protocol_ext_empty_o;
9170
9171using dl_up_tnl_address_to_upd_list_item_ext_ies_container = protocol_ext_container_empty_l;
9172
9173// DL-UP-TNL-Address-to-Update-List-Item ::= SEQUENCE
9175 bool ext = false;
9176 bool ie_exts_present = false;
9180 // ...
9181
9182 // sequence methods
9183 SRSASN_CODE pack(bit_ref& bref) const;
9184 SRSASN_CODE unpack(cbit_ref& bref);
9185 void to_json(json_writer& j) const;
9186};
9187
9188// DLPRSResource-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9190
9191// DLPRSResourceARP-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9193
9195
9196// DLPRSResourceARP ::= SEQUENCE
9198 bool ie_exts_present = false;
9199 uint8_t dl_prs_res_id = 0;
9200 dl_prs_res_arp_location_c dl_prs_res_arp_location;
9202
9203 // sequence methods
9204 SRSASN_CODE pack(bit_ref& bref) const;
9205 SRSASN_CODE unpack(cbit_ref& bref);
9206 void to_json(json_writer& j) const;
9207};
9208
9209// DLPRSResourceSetARP-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9211
9212// DLPRSResourceCoordinates-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9214
9216
9217// DLPRSResourceSetARP ::= SEQUENCE
9220
9221 // member variables
9222 bool ie_exts_present = false;
9223 uint8_t dl_prs_res_set_id = 0;
9224 dl_prs_res_set_arp_location_c dl_prs_res_set_arp_location;
9225 listof_dl_prs_res_arp_l_ listof_dl_prs_res_arp;
9227
9228 // sequence methods
9229 SRSASN_CODE pack(bit_ref& bref) const;
9230 SRSASN_CODE unpack(cbit_ref& bref);
9231 void to_json(json_writer& j) const;
9232};
9233
9235
9236// DLPRSResourceCoordinates ::= SEQUENCE
9239
9240 // member variables
9241 bool ie_exts_present = false;
9242 listof_dl_prs_res_set_arp_l_ listof_dl_prs_res_set_arp;
9244
9245 // sequence methods
9246 SRSASN_CODE pack(bit_ref& bref) const;
9247 SRSASN_CODE unpack(cbit_ref& bref);
9248 void to_json(json_writer& j) const;
9249};
9250
9252
9253// DLPRSResourceID-Item ::= SEQUENCE
9255 bool ext = false;
9256 bool ie_exts_present = false;
9257 uint8_t dl_prs_res_id = 0;
9259 // ...
9260
9261 // sequence methods
9262 SRSASN_CODE pack(bit_ref& bref) const;
9263 SRSASN_CODE unpack(cbit_ref& bref);
9264 void to_json(json_writer& j) const;
9265};
9266
9267// RAT-FrequencyPriorityInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
9269
9270// ExecuteDuplication ::= ENUMERATED
9272 enum options { true_value, /*...*/ nulltype } value;
9273
9274 const char* to_string() const;
9275};
9277
9278// RAT-FrequencyPriorityInformation ::= CHOICE
9280 struct types_opts {
9281 enum options { endc, ngran, choice_ext, nulltype } value;
9282
9283 const char* to_string() const;
9284 };
9286
9287 // choice methods
9288 rat_freq_prio_info_c() = default;
9290 rat_freq_prio_info_c& operator=(const rat_freq_prio_info_c& other);
9291 ~rat_freq_prio_info_c() { destroy_(); }
9292 void set(types::options e = types::nulltype);
9293 types type() const { return type_; }
9294 SRSASN_CODE pack(bit_ref& bref) const;
9295 SRSASN_CODE unpack(cbit_ref& bref);
9296 void to_json(json_writer& j) const;
9297 // getters
9298 uint16_t& endc()
9299 {
9300 assert_choice_type(types::endc, type_, "RAT-FrequencyPriorityInformation");
9301 return c.get<uint16_t>();
9302 }
9303 uint16_t& ngran()
9304 {
9305 assert_choice_type(types::ngran, type_, "RAT-FrequencyPriorityInformation");
9306 return c.get<uint16_t>();
9307 }
9308 protocol_ie_single_container_s<rat_freq_prio_info_ext_ies_o>& choice_ext()
9309 {
9310 assert_choice_type(types::choice_ext, type_, "RAT-FrequencyPriorityInformation");
9311 return c.get<protocol_ie_single_container_s<rat_freq_prio_info_ext_ies_o>>();
9312 }
9313 const uint16_t& endc() const
9314 {
9315 assert_choice_type(types::endc, type_, "RAT-FrequencyPriorityInformation");
9316 return c.get<uint16_t>();
9317 }
9318 const uint16_t& ngran() const
9319 {
9320 assert_choice_type(types::ngran, type_, "RAT-FrequencyPriorityInformation");
9321 return c.get<uint16_t>();
9322 }
9323 const protocol_ie_single_container_s<rat_freq_prio_info_ext_ies_o>& choice_ext() const
9324 {
9325 assert_choice_type(types::choice_ext, type_, "RAT-FrequencyPriorityInformation");
9326 return c.get<protocol_ie_single_container_s<rat_freq_prio_info_ext_ies_o>>();
9327 }
9328 uint16_t& set_endc();
9329 uint16_t& set_ngran();
9330 protocol_ie_single_container_s<rat_freq_prio_info_ext_ies_o>& set_choice_ext();
9331
9332private:
9333 types type_;
9334 choice_buffer_t<protocol_ie_single_container_s<rat_freq_prio_info_ext_ies_o>> c;
9335
9336 void destroy_();
9337};
9338
9339// RRCDeliveryStatusRequest ::= ENUMERATED
9341 enum options { true_value, /*...*/ nulltype } value;
9342
9343 const char* to_string() const;
9344};
9346
9347// UEContextNotRetrievable ::= ENUMERATED
9349 enum options { true_value, /*...*/ nulltype } value;
9350
9351 const char* to_string() const;
9352};
9354
9355// DLUPTNLInformation-ToBeSetup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9357
9359
9360// DLUPTNLInformation-ToBeSetup-Item ::= SEQUENCE
9362 bool ext = false;
9363 bool ie_exts_present = false;
9364 up_transport_layer_info_c dl_up_tnl_info;
9366 // ...
9367
9368 // sequence methods
9369 SRSASN_CODE pack(bit_ref& bref) const;
9370 SRSASN_CODE unpack(cbit_ref& bref);
9371 void to_json(json_writer& j) const;
9372};
9373
9374// DLUPTNLInformation-ToBeSetup-List ::= SEQUENCE (SIZE (1..2)) OF DLUPTNLInformation-ToBeSetup-Item
9376
9377// DRB-Activity ::= ENUMERATED
9379 enum options { active, not_active, nulltype } value;
9380
9381 const char* to_string() const;
9382};
9384
9385// DRB-Activity-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9387
9389
9390// DRB-Activity-Item ::= SEQUENCE
9392 bool ext = false;
9393 bool drb_activity_present = false;
9394 bool ie_exts_present = false;
9395 uint8_t drb_id = 1;
9396 drb_activity_e drb_activity;
9398 // ...
9399
9400 // sequence methods
9401 SRSASN_CODE pack(bit_ref& bref) const;
9402 SRSASN_CODE unpack(cbit_ref& bref);
9403 void to_json(json_writer& j) const;
9404};
9405
9406// TSCAssistanceInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9408 // Extension ::= OPEN TYPE
9409 struct ext_c {
9410 struct types_opts {
9411 enum options { survival_time, nulltype } value;
9412 typedef uint8_t number_type;
9413
9414 const char* to_string() const;
9415 uint8_t to_number() const;
9416 };
9418
9419 // choice methods
9420 types type() const { return types::survival_time; }
9421 SRSASN_CODE pack(bit_ref& bref) const;
9422 SRSASN_CODE unpack(cbit_ref& bref);
9423 void to_json(json_writer& j) const;
9424 // getters
9425 uint32_t& survival_time() { return c; }
9426 const uint32_t& survival_time() const { return c; }
9427
9428 private:
9429 uint32_t c;
9430 };
9431
9432 // members lookup methods
9433 static uint32_t idx_to_id(uint32_t idx);
9434 static bool is_id_valid(const uint32_t& id);
9435 static crit_e get_crit(const uint32_t& id);
9436 static ext_c get_ext(const uint32_t& id);
9437 static presence_e get_presence(const uint32_t& id);
9438};
9439
9440// TSCAssistanceInformation ::= SEQUENCE
9442 bool ext = false;
9443 uint32_t periodicity = 0;
9444 unbounded_octstring<true> burst_arrival_time;
9446 // ...
9447
9448 // sequence methods
9449 SRSASN_CODE pack(bit_ref& bref) const;
9450 SRSASN_CODE unpack(cbit_ref& bref);
9451 void to_json(json_writer& j) const;
9452};
9453
9454// TSCTrafficCharacteristics-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9456
9457// QoSFlowMappingIndication ::= ENUMERATED
9459 enum options { ul, dl, /*...*/ nulltype } value;
9460
9461 const char* to_string() const;
9462};
9464
9466
9467// TSCTrafficCharacteristics ::= SEQUENCE
9469 bool ext = false;
9470 bool tsc_assist_info_dl_present = false;
9471 bool tsc_assist_info_ul_present = false;
9472 bool ie_exts_present = false;
9473 tsc_assist_info_s tsc_assist_info_dl;
9474 tsc_assist_info_s tsc_assist_info_ul;
9476 // ...
9477
9478 // sequence methods
9479 SRSASN_CODE pack(bit_ref& bref) const;
9480 SRSASN_CODE unpack(cbit_ref& bref);
9481 void to_json(json_writer& j) const;
9482};
9483
9484// Flows-Mapped-To-DRB-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9486 // Extension ::= OPEN TYPE
9487 struct ext_c {
9488 struct types_opts {
9489 enum options { qos_flow_map_ind, tsc_traffic_characteristics, nulltype } value;
9490
9491 const char* to_string() const;
9492 };
9494
9495 // choice methods
9496 ext_c() = default;
9497 void set(types::options e = types::nulltype);
9498 types type() const { return type_; }
9499 SRSASN_CODE pack(bit_ref& bref) const;
9500 SRSASN_CODE unpack(cbit_ref& bref);
9501 void to_json(json_writer& j) const;
9502 // getters
9503 qos_flow_map_ind_e& qos_flow_map_ind();
9504 tsc_traffic_characteristics_s& tsc_traffic_characteristics();
9505 const qos_flow_map_ind_e& qos_flow_map_ind() const;
9506 const tsc_traffic_characteristics_s& tsc_traffic_characteristics() const;
9507
9508 private:
9509 types type_;
9511 };
9512
9513 // members lookup methods
9514 static uint32_t idx_to_id(uint32_t idx);
9515 static bool is_id_valid(const uint32_t& id);
9516 static crit_e get_crit(const uint32_t& id);
9517 static ext_c get_ext(const uint32_t& id);
9518 static presence_e get_presence(const uint32_t& id);
9519};
9520
9522 bool qos_flow_map_ind_present = false;
9523 bool tsc_traffic_characteristics_present = false;
9524 qos_flow_map_ind_e qos_flow_map_ind;
9525 tsc_traffic_characteristics_s tsc_traffic_characteristics;
9526
9527 // sequence methods
9528 SRSASN_CODE pack(bit_ref& bref) const;
9529 SRSASN_CODE unpack(cbit_ref& bref);
9530 void to_json(json_writer& j) const;
9531};
9532
9533// Flows-Mapped-To-DRB-Item ::= SEQUENCE
9535 bool ie_exts_present = false;
9536 uint8_t qos_flow_id = 0;
9537 qos_flow_level_qos_params_s qos_flow_level_qos_params;
9539
9540 // sequence methods
9541 SRSASN_CODE pack(bit_ref& bref) const;
9542 SRSASN_CODE unpack(cbit_ref& bref);
9543 void to_json(json_writer& j) const;
9544};
9545
9546// DRB-Information-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9548
9549// Flows-Mapped-To-DRB-List ::= SEQUENCE (SIZE (1..64)) OF Flows-Mapped-To-DRB-Item
9551
9552// NotificationControl ::= ENUMERATED
9554 enum options { active, not_active, /*...*/ nulltype } value;
9555
9556 const char* to_string() const;
9557};
9559
9561
9562// DRB-Information ::= SEQUENCE
9564 bool notif_ctrl_present = false;
9565 bool ie_exts_present = false;
9567 snssai_s snssai;
9568 notif_ctrl_e notif_ctrl;
9569 flows_mapped_to_drb_list_l flows_mapped_to_drb_list;
9571
9572 // sequence methods
9573 SRSASN_CODE pack(bit_ref& bref) const;
9574 SRSASN_CODE unpack(cbit_ref& bref);
9575 void to_json(json_writer& j) const;
9576};
9577
9578// DRB-Notify-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9580 // Extension ::= OPEN TYPE
9581 struct ext_c {
9582 struct types_opts {
9583 enum options { current_qos_para_set_idx, nulltype } value;
9584 typedef uint8_t number_type;
9585
9586 const char* to_string() const;
9587 uint8_t to_number() const;
9588 };
9590
9591 // choice methods
9592 types type() const { return types::current_qos_para_set_idx; }
9593 SRSASN_CODE pack(bit_ref& bref) const;
9594 SRSASN_CODE unpack(cbit_ref& bref);
9595 void to_json(json_writer& j) const;
9596 // getters
9597 uint8_t& current_qos_para_set_idx() { return c; }
9598 const uint8_t& current_qos_para_set_idx() const { return c; }
9599
9600 private:
9601 uint8_t c;
9602 };
9603
9604 // members lookup methods
9605 static uint32_t idx_to_id(uint32_t idx);
9606 static bool is_id_valid(const uint32_t& id);
9607 static crit_e get_crit(const uint32_t& id);
9608 static ext_c get_ext(const uint32_t& id);
9609 static presence_e get_presence(const uint32_t& id);
9610};
9611
9612// Notification-Cause ::= ENUMERATED
9614 enum options { fulfilled, not_fulfilled, /*...*/ nulltype } value;
9615
9616 const char* to_string() const;
9617};
9619
9620// DRB-Notify-Item ::= SEQUENCE
9622 bool ext = false;
9623 uint8_t drb_id = 1;
9624 notif_cause_e notif_cause;
9626 // ...
9627
9628 // sequence methods
9629 SRSASN_CODE pack(bit_ref& bref) const;
9630 SRSASN_CODE unpack(cbit_ref& bref);
9631 void to_json(json_writer& j) const;
9632};
9633
9634// DRBs-FailedToBeModified-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9636
9638
9639// DRBs-FailedToBeModified-Item ::= SEQUENCE
9641 bool ext = false;
9642 bool cause_present = false;
9643 bool ie_exts_present = false;
9644 uint8_t drb_id = 1;
9645 cause_c cause;
9647 // ...
9648
9649 // sequence methods
9650 SRSASN_CODE pack(bit_ref& bref) const;
9651 SRSASN_CODE unpack(cbit_ref& bref);
9652 void to_json(json_writer& j) const;
9653};
9654
9655// DRBs-FailedToBeSetup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9657
9659
9660// DRBs-FailedToBeSetup-Item ::= SEQUENCE
9662 bool ext = false;
9663 bool cause_present = false;
9664 bool ie_exts_present = false;
9665 uint8_t drb_id = 1;
9666 cause_c cause;
9668 // ...
9669
9670 // sequence methods
9671 SRSASN_CODE pack(bit_ref& bref) const;
9672 SRSASN_CODE unpack(cbit_ref& bref);
9673 void to_json(json_writer& j) const;
9674};
9675
9676// DRBs-FailedToBeSetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9678
9680
9681// DRBs-FailedToBeSetupMod-Item ::= SEQUENCE
9683 bool ext = false;
9684 bool cause_present = false;
9685 bool ie_exts_present = false;
9686 uint8_t drb_id = 1;
9687 cause_c cause;
9689 // ...
9690
9691 // sequence methods
9692 SRSASN_CODE pack(bit_ref& bref) const;
9693 SRSASN_CODE unpack(cbit_ref& bref);
9694 void to_json(json_writer& j) const;
9695};
9696
9697// RLC-Status-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9699
9700// Reestablishment-Indication ::= ENUMERATED
9702 enum options { reestablished, /*...*/ nulltype } value;
9703
9704 const char* to_string() const;
9705};
9707
9709
9710// RLC-Status ::= SEQUENCE
9712 bool ext = false;
9713 bool ie_exts_present = false;
9714 reest_ind_e reest_ind;
9716 // ...
9717
9718 // sequence methods
9719 SRSASN_CODE pack(bit_ref& bref) const;
9720 SRSASN_CODE unpack(cbit_ref& bref);
9721 void to_json(json_writer& j) const;
9722};
9723
9724// DRBs-Modified-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9726 // Extension ::= OPEN TYPE
9727 struct ext_c {
9728 struct types_opts {
9729 enum options { rlc_status, add_pdcp_dupl_tnl_list, current_qos_para_set_idx, nulltype } value;
9730 typedef uint8_t number_type;
9731
9732 const char* to_string() const;
9733 uint8_t to_number() const;
9734 };
9736
9737 // choice methods
9738 ext_c() = default;
9739 void set(types::options e = types::nulltype);
9740 types type() const { return type_; }
9741 SRSASN_CODE pack(bit_ref& bref) const;
9742 SRSASN_CODE unpack(cbit_ref& bref);
9743 void to_json(json_writer& j) const;
9744 // getters
9745 rlc_status_s& rlc_status();
9746 add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list();
9747 uint8_t& current_qos_para_set_idx();
9748 const rlc_status_s& rlc_status() const;
9749 const add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list() const;
9750 const uint8_t& current_qos_para_set_idx() const;
9751
9752 private:
9753 types type_;
9755 };
9756
9757 // members lookup methods
9758 static uint32_t idx_to_id(uint32_t idx);
9759 static bool is_id_valid(const uint32_t& id);
9760 static crit_e get_crit(const uint32_t& id);
9761 static ext_c get_ext(const uint32_t& id);
9762 static presence_e get_presence(const uint32_t& id);
9763};
9764
9766 bool rlc_status_present = false;
9767 bool add_pdcp_dupl_tnl_list_present = false;
9768 bool current_qos_para_set_idx_present = false;
9769 rlc_status_s rlc_status;
9770 add_pdcp_dupl_tnl_list_l add_pdcp_dupl_tnl_list;
9771 uint8_t current_qos_para_set_idx;
9772
9773 // sequence methods
9774 SRSASN_CODE pack(bit_ref& bref) const;
9775 SRSASN_CODE unpack(cbit_ref& bref);
9776 void to_json(json_writer& j) const;
9777};
9778
9779// DRBs-Modified-Item ::= SEQUENCE
9781 bool ext = false;
9782 bool lcid_present = false;
9783 bool ie_exts_present = false;
9784 uint8_t drb_id = 1;
9785 uint8_t lcid = 1;
9786 dl_up_tnl_info_to_be_setup_list_l dl_up_tnl_info_to_be_setup_list;
9788 // ...
9789
9790 // sequence methods
9791 SRSASN_CODE pack(bit_ref& bref) const;
9792 SRSASN_CODE unpack(cbit_ref& bref);
9793 void to_json(json_writer& j) const;
9794};
9795
9796// ULUPTNLInformation-ToBeSetup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9798 // Extension ::= OPEN TYPE
9799 struct ext_c {
9800 struct types_opts {
9801 enum options { bh_info, drb_map_info, nulltype } value;
9802
9803 const char* to_string() const;
9804 };
9806
9807 // choice methods
9808 ext_c() = default;
9809 void set(types::options e = types::nulltype);
9810 types type() const { return type_; }
9811 SRSASN_CODE pack(bit_ref& bref) const;
9812 SRSASN_CODE unpack(cbit_ref& bref);
9813 void to_json(json_writer& j) const;
9814 // getters
9815 bh_info_s& bh_info();
9816 fixed_bitstring<16, false, true>& drb_map_info();
9817 const bh_info_s& bh_info() const;
9818 const fixed_bitstring<16, false, true>& drb_map_info() const;
9819
9820 private:
9821 types type_;
9823 };
9824
9825 // members lookup methods
9826 static uint32_t idx_to_id(uint32_t idx);
9827 static bool is_id_valid(const uint32_t& id);
9828 static crit_e get_crit(const uint32_t& id);
9829 static ext_c get_ext(const uint32_t& id);
9830 static presence_e get_presence(const uint32_t& id);
9831};
9832
9834 bool bh_info_present = false;
9835 bool drb_map_info_present = false;
9836 bh_info_s bh_info;
9838
9839 // sequence methods
9840 SRSASN_CODE pack(bit_ref& bref) const;
9841 SRSASN_CODE unpack(cbit_ref& bref);
9842 void to_json(json_writer& j) const;
9843};
9844
9845// ULUPTNLInformation-ToBeSetup-Item ::= SEQUENCE
9847 bool ext = false;
9848 bool ie_exts_present = false;
9849 up_transport_layer_info_c ul_up_tnl_info;
9851 // ...
9852
9853 // sequence methods
9854 SRSASN_CODE pack(bit_ref& bref) const;
9855 SRSASN_CODE unpack(cbit_ref& bref);
9856 void to_json(json_writer& j) const;
9857};
9858
9859// DRBs-ModifiedConf-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9861 // Extension ::= OPEN TYPE
9862 struct ext_c {
9863 struct types_opts {
9864 enum options { add_pdcp_dupl_tnl_list, nulltype } value;
9865
9866 const char* to_string() const;
9867 };
9869
9870 // choice methods
9871 types type() const { return types::add_pdcp_dupl_tnl_list; }
9872 SRSASN_CODE pack(bit_ref& bref) const;
9873 SRSASN_CODE unpack(cbit_ref& bref);
9874 void to_json(json_writer& j) const;
9875 // getters
9876 add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list() { return c; }
9877 const add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list() const { return c; }
9878
9879 private:
9880 add_pdcp_dupl_tnl_list_l c;
9881 };
9882
9883 // members lookup methods
9884 static uint32_t idx_to_id(uint32_t idx);
9885 static bool is_id_valid(const uint32_t& id);
9886 static crit_e get_crit(const uint32_t& id);
9887 static ext_c get_ext(const uint32_t& id);
9888 static presence_e get_presence(const uint32_t& id);
9889};
9890
9891// ULUPTNLInformation-ToBeSetup-List ::= SEQUENCE (SIZE (1..2)) OF ULUPTNLInformation-ToBeSetup-Item
9892using ul_up_tnl_info_to_be_setup_list_l = dyn_array<ul_up_tnl_info_to_be_setup_item_s>;
9893
9894// DRBs-ModifiedConf-Item ::= SEQUENCE
9896 bool ext = false;
9897 uint8_t drb_id = 1;
9898 ul_up_tnl_info_to_be_setup_list_l ul_up_tnl_info_to_be_setup_list;
9900 // ...
9901
9902 // sequence methods
9903 SRSASN_CODE pack(bit_ref& bref) const;
9904 SRSASN_CODE unpack(cbit_ref& bref);
9905 void to_json(json_writer& j) const;
9906};
9907
9908// DRBs-Required-ToBeModified-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9910 // Extension ::= OPEN TYPE
9911 struct ext_c {
9912 struct types_opts {
9913 enum options { rlc_status, add_pdcp_dupl_tnl_list, nulltype } value;
9914
9915 const char* to_string() const;
9916 };
9918
9919 // choice methods
9920 ext_c() = default;
9921 void set(types::options e = types::nulltype);
9922 types type() const { return type_; }
9923 SRSASN_CODE pack(bit_ref& bref) const;
9924 SRSASN_CODE unpack(cbit_ref& bref);
9925 void to_json(json_writer& j) const;
9926 // getters
9927 rlc_status_s& rlc_status();
9928 add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list();
9929 const rlc_status_s& rlc_status() const;
9930 const add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list() const;
9931
9932 private:
9933 types type_;
9935 };
9936
9937 // members lookup methods
9938 static uint32_t idx_to_id(uint32_t idx);
9939 static bool is_id_valid(const uint32_t& id);
9940 static crit_e get_crit(const uint32_t& id);
9941 static ext_c get_ext(const uint32_t& id);
9942 static presence_e get_presence(const uint32_t& id);
9943};
9944
9946 bool rlc_status_present = false;
9947 bool add_pdcp_dupl_tnl_list_present = false;
9948 rlc_status_s rlc_status;
9949 add_pdcp_dupl_tnl_list_l add_pdcp_dupl_tnl_list;
9950
9951 // sequence methods
9952 SRSASN_CODE pack(bit_ref& bref) const;
9953 SRSASN_CODE unpack(cbit_ref& bref);
9954 void to_json(json_writer& j) const;
9955};
9956
9957// DRBs-Required-ToBeModified-Item ::= SEQUENCE
9959 bool ext = false;
9960 bool ie_exts_present = false;
9961 uint8_t drb_id = 1;
9962 dl_up_tnl_info_to_be_setup_list_l dl_up_tnl_info_to_be_setup_list;
9964 // ...
9965
9966 // sequence methods
9967 SRSASN_CODE pack(bit_ref& bref) const;
9968 SRSASN_CODE unpack(cbit_ref& bref);
9969 void to_json(json_writer& j) const;
9970};
9971
9972// DRBs-Required-ToBeReleased-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9974
9976
9977// DRBs-Required-ToBeReleased-Item ::= SEQUENCE
9979 bool ext = false;
9980 bool ie_exts_present = false;
9981 uint8_t drb_id = 1;
9983 // ...
9984
9985 // sequence methods
9986 SRSASN_CODE pack(bit_ref& bref) const;
9987 SRSASN_CODE unpack(cbit_ref& bref);
9988 void to_json(json_writer& j) const;
9989};
9990
9991// DRBs-Setup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
9993 // Extension ::= OPEN TYPE
9994 struct ext_c {
9995 struct types_opts {
9996 enum options { add_pdcp_dupl_tnl_list, current_qos_para_set_idx, nulltype } value;
9997 typedef uint8_t number_type;
9998
9999 const char* to_string() const;
10000 uint8_t to_number() const;
10001 };
10003
10004 // choice methods
10005 ext_c() = default;
10006 void set(types::options e = types::nulltype);
10007 types type() const { return type_; }
10008 SRSASN_CODE pack(bit_ref& bref) const;
10009 SRSASN_CODE unpack(cbit_ref& bref);
10010 void to_json(json_writer& j) const;
10011 // getters
10012 add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list();
10013 uint8_t& current_qos_para_set_idx();
10014 const add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list() const;
10015 const uint8_t& current_qos_para_set_idx() const;
10016
10017 private:
10018 types type_;
10020 };
10021
10022 // members lookup methods
10023 static uint32_t idx_to_id(uint32_t idx);
10024 static bool is_id_valid(const uint32_t& id);
10025 static crit_e get_crit(const uint32_t& id);
10026 static ext_c get_ext(const uint32_t& id);
10027 static presence_e get_presence(const uint32_t& id);
10028};
10029
10031 bool add_pdcp_dupl_tnl_list_present = false;
10032 bool current_qos_para_set_idx_present = false;
10033 add_pdcp_dupl_tnl_list_l add_pdcp_dupl_tnl_list;
10034 uint8_t current_qos_para_set_idx;
10035
10036 // sequence methods
10037 SRSASN_CODE pack(bit_ref& bref) const;
10038 SRSASN_CODE unpack(cbit_ref& bref);
10039 void to_json(json_writer& j) const;
10040};
10041
10042// DRBs-Setup-Item ::= SEQUENCE
10044 bool ext = false;
10045 bool lcid_present = false;
10046 bool ie_exts_present = false;
10047 uint8_t drb_id = 1;
10048 uint8_t lcid = 1;
10049 dl_up_tnl_info_to_be_setup_list_l dl_up_tnl_info_to_be_setup_list;
10051 // ...
10052
10053 // sequence methods
10054 SRSASN_CODE pack(bit_ref& bref) const;
10055 SRSASN_CODE unpack(cbit_ref& bref);
10056 void to_json(json_writer& j) const;
10057};
10058
10059// DRBs-SetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
10061 // Extension ::= OPEN TYPE
10062 struct ext_c {
10063 struct types_opts {
10064 enum options { add_pdcp_dupl_tnl_list, current_qos_para_set_idx, nulltype } value;
10065 typedef uint8_t number_type;
10066
10067 const char* to_string() const;
10068 uint8_t to_number() const;
10069 };
10071
10072 // choice methods
10073 ext_c() = default;
10074 void set(types::options e = types::nulltype);
10075 types type() const { return type_; }
10076 SRSASN_CODE pack(bit_ref& bref) const;
10077 SRSASN_CODE unpack(cbit_ref& bref);
10078 void to_json(json_writer& j) const;
10079 // getters
10080 add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list();
10081 uint8_t& current_qos_para_set_idx();
10082 const add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list() const;
10083 const uint8_t& current_qos_para_set_idx() const;
10084
10085 private:
10086 types type_;
10088 };
10089
10090 // members lookup methods
10091 static uint32_t idx_to_id(uint32_t idx);
10092 static bool is_id_valid(const uint32_t& id);
10093 static crit_e get_crit(const uint32_t& id);
10094 static ext_c get_ext(const uint32_t& id);
10095 static presence_e get_presence(const uint32_t& id);
10096};
10097
10099 bool add_pdcp_dupl_tnl_list_present = false;
10100 bool current_qos_para_set_idx_present = false;
10101 add_pdcp_dupl_tnl_list_l add_pdcp_dupl_tnl_list;
10102 uint8_t current_qos_para_set_idx;
10103
10104 // sequence methods
10105 SRSASN_CODE pack(bit_ref& bref) const;
10106 SRSASN_CODE unpack(cbit_ref& bref);
10107 void to_json(json_writer& j) const;
10108};
10109
10110// DRBs-SetupMod-Item ::= SEQUENCE
10112 bool ext = false;
10113 bool lcid_present = false;
10114 bool ie_exts_present = false;
10115 uint8_t drb_id = 1;
10116 uint8_t lcid = 1;
10117 dl_up_tnl_info_to_be_setup_list_l dl_up_tnl_info_to_be_setup_list;
10119 // ...
10120
10121 // sequence methods
10122 SRSASN_CODE pack(bit_ref& bref) const;
10123 SRSASN_CODE unpack(cbit_ref& bref);
10124 void to_json(json_writer& j) const;
10125};
10126
10127// DuplicationState ::= ENUMERATED
10129 enum options { active, inactive, /*...*/ nulltype } value;
10130
10131 const char* to_string() const;
10132};
10134
10135// RLCDuplicationState-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
10137
10139
10140// RLCDuplicationState-Item ::= SEQUENCE
10142 bool ext = false;
10143 bool ie_exts_present = false;
10144 dupl_state_e dupl_state;
10146 // ...
10147
10148 // sequence methods
10149 SRSASN_CODE pack(bit_ref& bref) const;
10150 SRSASN_CODE unpack(cbit_ref& bref);
10151 void to_json(json_writer& j) const;
10152};
10153
10154// PrimaryPathIndication ::= ENUMERATED
10156 enum options { true_value, false_value, /*...*/ nulltype } value;
10157
10158 const char* to_string() const;
10159};
10161
10162// RLCDuplicationInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
10164
10165// RLCDuplicationStateList ::= SEQUENCE (SIZE (1..3)) OF RLCDuplicationState-Item
10167
10168// BearerTypeChange ::= ENUMERATED
10170 enum options { true_value, /*...*/ nulltype } value;
10171
10172 const char* to_string() const;
10173};
10175
10176// CG-SDTindicatorMod ::= ENUMERATED
10178 enum options { true_value, false_value, /*...*/ nulltype } value;
10179
10180 const char* to_string() const;
10181};
10183
10184// DCBasedDuplicationConfigured ::= ENUMERATED
10186 enum options { true_value, /*...*/ false_value, nulltype } value;
10187
10188 const char* to_string() const;
10189};
10191
10192// DuplicationActivation ::= ENUMERATED
10194 enum options { active, inactive, /*...*/ nulltype } value;
10195
10196 const char* to_string() const;
10197};
10199
10200// PDCPSNLength ::= ENUMERATED
10202 enum options { twelve_bits, eighteen_bits, /*...*/ nulltype } value;
10203 typedef uint8_t number_type;
10204
10205 const char* to_string() const;
10206 uint8_t to_number() const;
10207};
10209
10210// QoSInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
10212 // Value ::= OPEN TYPE
10213 struct value_c {
10214 struct types_opts {
10215 enum options { drb_info, nulltype } value;
10216
10217 const char* to_string() const;
10218 };
10220
10221 // choice methods
10222 types type() const { return types::drb_info; }
10223 SRSASN_CODE pack(bit_ref& bref) const;
10224 SRSASN_CODE unpack(cbit_ref& bref);
10225 void to_json(json_writer& j) const;
10226 // getters
10227 drb_info_s& drb_info() { return c; }
10228 const drb_info_s& drb_info() const { return c; }
10229
10230 private:
10231 drb_info_s c;
10232 };
10233
10234 // members lookup methods
10235 static uint32_t idx_to_id(uint32_t idx);
10236 static bool is_id_valid(const uint32_t& id);
10237 static crit_e get_crit(const uint32_t& id);
10238 static value_c get_value(const uint32_t& id);
10239 static presence_e get_presence(const uint32_t& id);
10240};
10241
10242using rlc_dupl_info_ext_ies_container = protocol_ext_container_empty_l;
10243
10244// RLCDuplicationInformation ::= SEQUENCE
10246 bool primary_path_ind_present = false;
10247 bool ie_exts_present = false;
10248 rlc_dupl_state_list_l rlc_dupl_state_list;
10249 primary_path_ind_e primary_path_ind;
10251
10252 // sequence methods
10253 SRSASN_CODE pack(bit_ref& bref) const;
10254 SRSASN_CODE unpack(cbit_ref& bref);
10255 void to_json(json_writer& j) const;
10256};
10257
10258// TransmissionStopIndicator ::= ENUMERATED
10260 enum options { true_value, /*...*/ nulltype } value;
10261
10262 const char* to_string() const;
10263};
10265
10266// ULConfigurationExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
10268
10269// ULUEConfiguration ::= ENUMERATED
10271 enum options { no_data, shared, only, /*...*/ nulltype } value;
10272
10273 const char* to_string() const;
10274};
10276
10277// DRBs-ToBeModified-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
10279 // Extension ::= OPEN TYPE
10280 struct ext_c {
10281 struct types_opts {
10282 enum options {
10283 dl_pdcp_sn_len,
10284 ul_pdcp_sn_len,
10285 bearer_type_change,
10286 rlc_mode,
10287 dupl_activation,
10288 dc_based_dupl_cfg,
10289 dc_based_dupl_activation,
10290 add_pdcp_dupl_tnl_list,
10291 rlc_dupl_info,
10292 tx_stop_ind,
10293 cg_sd_tind_mod,
10294 nulltype
10295 } value;
10296
10297 const char* to_string() const;
10298 };
10300
10301 // choice methods
10302 ext_c() = default;
10303 void set(types::options e = types::nulltype);
10304 types type() const { return type_; }
10305 SRSASN_CODE pack(bit_ref& bref) const;
10306 SRSASN_CODE unpack(cbit_ref& bref);
10307 void to_json(json_writer& j) const;
10308 // getters
10309 pdcp_sn_len_e& dl_pdcp_sn_len();
10310 pdcp_sn_len_e& ul_pdcp_sn_len();
10311 bearer_type_change_e& bearer_type_change();
10312 rlc_mode_e& rlc_mode();
10313 dupl_activation_e& dupl_activation();
10314 dc_based_dupl_cfg_e& dc_based_dupl_cfg();
10315 dupl_activation_e& dc_based_dupl_activation();
10316 add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list();
10317 rlc_dupl_info_s& rlc_dupl_info();
10318 tx_stop_ind_e& tx_stop_ind();
10319 cg_sd_tind_mod_e& cg_sd_tind_mod();
10320 const pdcp_sn_len_e& dl_pdcp_sn_len() const;
10321 const pdcp_sn_len_e& ul_pdcp_sn_len() const;
10322 const bearer_type_change_e& bearer_type_change() const;
10323 const rlc_mode_e& rlc_mode() const;
10324 const dupl_activation_e& dupl_activation() const;
10325 const dc_based_dupl_cfg_e& dc_based_dupl_cfg() const;
10326 const dupl_activation_e& dc_based_dupl_activation() const;
10327 const add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list() const;
10328 const rlc_dupl_info_s& rlc_dupl_info() const;
10329 const tx_stop_ind_e& tx_stop_ind() const;
10330 const cg_sd_tind_mod_e& cg_sd_tind_mod() const;
10331
10332 private:
10333 types type_;
10335 };
10336
10337 // members lookup methods
10338 static uint32_t idx_to_id(uint32_t idx);
10339 static bool is_id_valid(const uint32_t& id);
10340 static crit_e get_crit(const uint32_t& id);
10341 static ext_c get_ext(const uint32_t& id);
10342 static presence_e get_presence(const uint32_t& id);
10343};
10344
10345// QoSInformation ::= CHOICE
10347 struct types_opts {
10348 enum options { eutran_qos, choice_ext, nulltype } value;
10349
10350 const char* to_string() const;
10351 };
10353
10354 // choice methods
10355 qos_info_c() = default;
10356 qos_info_c(const qos_info_c& other);
10357 qos_info_c& operator=(const qos_info_c& other);
10358 ~qos_info_c() { destroy_(); }
10359 void set(types::options e = types::nulltype);
10360 types type() const { return type_; }
10361 SRSASN_CODE pack(bit_ref& bref) const;
10362 SRSASN_CODE unpack(cbit_ref& bref);
10363 void to_json(json_writer& j) const;
10364 // getters
10365 eutran_qos_s& eutran_qos()
10366 {
10367 assert_choice_type(types::eutran_qos, type_, "QoSInformation");
10368 return c.get<eutran_qos_s>();
10369 }
10370 protocol_ie_single_container_s<qos_info_ext_ies_o>& choice_ext()
10371 {
10372 assert_choice_type(types::choice_ext, type_, "QoSInformation");
10373 return c.get<protocol_ie_single_container_s<qos_info_ext_ies_o>>();
10374 }
10375 const eutran_qos_s& eutran_qos() const
10376 {
10377 assert_choice_type(types::eutran_qos, type_, "QoSInformation");
10378 return c.get<eutran_qos_s>();
10379 }
10380 const protocol_ie_single_container_s<qos_info_ext_ies_o>& choice_ext() const
10381 {
10382 assert_choice_type(types::choice_ext, type_, "QoSInformation");
10383 return c.get<protocol_ie_single_container_s<qos_info_ext_ies_o>>();
10384 }
10385 eutran_qos_s& set_eutran_qos();
10386 protocol_ie_single_container_s<qos_info_ext_ies_o>& set_choice_ext();
10387
10388private:
10389 types type_;
10390 choice_buffer_t<eutran_qos_s, protocol_ie_single_container_s<qos_info_ext_ies_o>> c;
10391
10392 void destroy_();
10393};
10394
10395using ul_cfg_ext_ies_container = protocol_ext_container_empty_l;
10396
10397// ULConfiguration ::= SEQUENCE
10398struct ul_cfg_s {
10399 bool ext = false;
10400 bool ie_exts_present = false;
10401 ul_ue_cfg_e ul_ue_cfg;
10403 // ...
10404
10405 // sequence methods
10406 SRSASN_CODE pack(bit_ref& bref) const;
10407 SRSASN_CODE unpack(cbit_ref& bref);
10408 void to_json(json_writer& j) const;
10409};
10410
10412 bool dl_pdcp_sn_len_present = false;
10413 bool ul_pdcp_sn_len_present = false;
10414 bool bearer_type_change_present = false;
10415 bool rlc_mode_present = false;
10416 bool dupl_activation_present = false;
10417 bool dc_based_dupl_cfg_present = false;
10418 bool dc_based_dupl_activation_present = false;
10419 bool add_pdcp_dupl_tnl_list_present = false;
10420 bool rlc_dupl_info_present = false;
10421 bool tx_stop_ind_present = false;
10422 bool cg_sd_tind_mod_present = false;
10423 pdcp_sn_len_e dl_pdcp_sn_len;
10424 pdcp_sn_len_e ul_pdcp_sn_len;
10425 bearer_type_change_e bearer_type_change;
10426 rlc_mode_e rlc_mode;
10427 dupl_activation_e dupl_activation;
10428 dc_based_dupl_cfg_e dc_based_dupl_cfg;
10429 dupl_activation_e dc_based_dupl_activation;
10430 add_pdcp_dupl_tnl_list_l add_pdcp_dupl_tnl_list;
10431 rlc_dupl_info_s rlc_dupl_info;
10432 tx_stop_ind_e tx_stop_ind;
10433 cg_sd_tind_mod_e cg_sd_tind_mod;
10434
10435 // sequence methods
10436 SRSASN_CODE pack(bit_ref& bref) const;
10437 SRSASN_CODE unpack(cbit_ref& bref);
10438 void to_json(json_writer& j) const;
10439};
10440
10441// DRBs-ToBeModified-Item ::= SEQUENCE
10443 bool ext = false;
10444 bool qos_info_present = false;
10445 bool ul_cfg_present = false;
10446 bool ie_exts_present = false;
10447 uint8_t drb_id = 1;
10448 qos_info_c qos_info;
10449 ul_up_tnl_info_to_be_setup_list_l ul_up_tnl_info_to_be_setup_list;
10450 ul_cfg_s ul_cfg;
10452 // ...
10453
10454 // sequence methods
10455 SRSASN_CODE pack(bit_ref& bref) const;
10456 SRSASN_CODE unpack(cbit_ref& bref);
10457 void to_json(json_writer& j) const;
10458};
10459
10460// DRBs-ToBeReleased-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
10462
10464
10465// DRBs-ToBeReleased-Item ::= SEQUENCE
10467 bool ext = false;
10468 bool ie_exts_present = false;
10469 uint8_t drb_id = 1;
10471 // ...
10472
10473 // sequence methods
10474 SRSASN_CODE pack(bit_ref& bref) const;
10475 SRSASN_CODE unpack(cbit_ref& bref);
10476 void to_json(json_writer& j) const;
10477};
10478
10479// DRBs-ToBeSetup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
10481 // Extension ::= OPEN TYPE
10482 struct ext_c {
10483 struct types_opts {
10484 enum options {
10485 dc_based_dupl_cfg,
10486 dc_based_dupl_activation,
10487 dl_pdcp_sn_len,
10488 ul_pdcp_sn_len,
10489 add_pdcp_dupl_tnl_list,
10490 rlc_dupl_info,
10491 sdt_rlc_bearer_cfg,
10492 nulltype
10493 } value;
10494
10495 const char* to_string() const;
10496 };
10498
10499 // choice methods
10500 ext_c() = default;
10501 void set(types::options e = types::nulltype);
10502 types type() const { return type_; }
10503 SRSASN_CODE pack(bit_ref& bref) const;
10504 SRSASN_CODE unpack(cbit_ref& bref);
10505 void to_json(json_writer& j) const;
10506 // getters
10507 dc_based_dupl_cfg_e& dc_based_dupl_cfg();
10508 dupl_activation_e& dc_based_dupl_activation();
10509 pdcp_sn_len_e& dl_pdcp_sn_len();
10510 pdcp_sn_len_e& ul_pdcp_sn_len();
10511 add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list();
10512 rlc_dupl_info_s& rlc_dupl_info();
10513 unbounded_octstring<true>& sdt_rlc_bearer_cfg();
10514 const dc_based_dupl_cfg_e& dc_based_dupl_cfg() const;
10515 const dupl_activation_e& dc_based_dupl_activation() const;
10516 const pdcp_sn_len_e& dl_pdcp_sn_len() const;
10517 const pdcp_sn_len_e& ul_pdcp_sn_len() const;
10518 const add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list() const;
10519 const rlc_dupl_info_s& rlc_dupl_info() const;
10520 const unbounded_octstring<true>& sdt_rlc_bearer_cfg() const;
10521
10522 private:
10523 types type_;
10525 };
10526
10527 // members lookup methods
10528 static uint32_t idx_to_id(uint32_t idx);
10529 static bool is_id_valid(const uint32_t& id);
10530 static crit_e get_crit(const uint32_t& id);
10531 static ext_c get_ext(const uint32_t& id);
10532 static presence_e get_presence(const uint32_t& id);
10533};
10534
10536 bool dc_based_dupl_cfg_present = false;
10537 bool dc_based_dupl_activation_present = false;
10538 bool ul_pdcp_sn_len_present = false;
10539 bool add_pdcp_dupl_tnl_list_present = false;
10540 bool rlc_dupl_info_present = false;
10541 bool sdt_rlc_bearer_cfg_present = false;
10542 dc_based_dupl_cfg_e dc_based_dupl_cfg;
10543 dupl_activation_e dc_based_dupl_activation;
10544 pdcp_sn_len_e dl_pdcp_sn_len;
10545 pdcp_sn_len_e ul_pdcp_sn_len;
10546 add_pdcp_dupl_tnl_list_l add_pdcp_dupl_tnl_list;
10547 rlc_dupl_info_s rlc_dupl_info;
10548 unbounded_octstring<true> sdt_rlc_bearer_cfg;
10549
10550 // sequence methods
10551 SRSASN_CODE pack(bit_ref& bref) const;
10552 SRSASN_CODE unpack(cbit_ref& bref);
10553 void to_json(json_writer& j) const;
10554};
10555
10556// DRBs-ToBeSetup-Item ::= SEQUENCE
10558 bool ext = false;
10559 bool ul_cfg_present = false;
10560 bool dupl_activation_present = false;
10561 bool ie_exts_present = false;
10562 uint8_t drb_id = 1;
10563 qos_info_c qos_info;
10564 ul_up_tnl_info_to_be_setup_list_l ul_up_tnl_info_to_be_setup_list;
10565 rlc_mode_e rlc_mode;
10566 ul_cfg_s ul_cfg;
10567 dupl_activation_e dupl_activation;
10569 // ...
10570
10571 // sequence methods
10572 SRSASN_CODE pack(bit_ref& bref) const;
10573 SRSASN_CODE unpack(cbit_ref& bref);
10574 void to_json(json_writer& j) const;
10575};
10576
10577// CG-SDTindicatorSetup ::= ENUMERATED
10579 enum options { true_value, /*...*/ nulltype } value;
10580
10581 const char* to_string() const;
10582};
10584
10585// DRBs-ToBeSetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
10587 // Extension ::= OPEN TYPE
10588 struct ext_c {
10589 struct types_opts {
10590 enum options {
10591 dc_based_dupl_cfg,
10592 dc_based_dupl_activation,
10593 dl_pdcp_sn_len,
10594 ul_pdcp_sn_len,
10595 add_pdcp_dupl_tnl_list,
10596 rlc_dupl_info,
10597 cg_sd_tind_setup,
10598 nulltype
10599 } value;
10600
10601 const char* to_string() const;
10602 };
10604
10605 // choice methods
10606 ext_c() = default;
10607 void set(types::options e = types::nulltype);
10608 types type() const { return type_; }
10609 SRSASN_CODE pack(bit_ref& bref) const;
10610 SRSASN_CODE unpack(cbit_ref& bref);
10611 void to_json(json_writer& j) const;
10612 // getters
10613 dc_based_dupl_cfg_e& dc_based_dupl_cfg();
10614 dupl_activation_e& dc_based_dupl_activation();
10615 pdcp_sn_len_e& dl_pdcp_sn_len();
10616 pdcp_sn_len_e& ul_pdcp_sn_len();
10617 add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list();
10618 rlc_dupl_info_s& rlc_dupl_info();
10619 cg_sd_tind_setup_e& cg_sd_tind_setup();
10620 const dc_based_dupl_cfg_e& dc_based_dupl_cfg() const;
10621 const dupl_activation_e& dc_based_dupl_activation() const;
10622 const pdcp_sn_len_e& dl_pdcp_sn_len() const;
10623 const pdcp_sn_len_e& ul_pdcp_sn_len() const;
10624 const add_pdcp_dupl_tnl_list_l& add_pdcp_dupl_tnl_list() const;
10625 const rlc_dupl_info_s& rlc_dupl_info() const;
10626 const cg_sd_tind_setup_e& cg_sd_tind_setup() const;
10627
10628 private:
10629 types type_;
10631 };
10632
10633 // members lookup methods
10634 static uint32_t idx_to_id(uint32_t idx);
10635 static bool is_id_valid(const uint32_t& id);
10636 static crit_e get_crit(const uint32_t& id);
10637 static ext_c get_ext(const uint32_t& id);
10638 static presence_e get_presence(const uint32_t& id);
10639};
10640
10642 bool dc_based_dupl_cfg_present = false;
10643 bool dc_based_dupl_activation_present = false;
10644 bool dl_pdcp_sn_len_present = false;
10645 bool ul_pdcp_sn_len_present = false;
10646 bool add_pdcp_dupl_tnl_list_present = false;
10647 bool rlc_dupl_info_present = false;
10648 bool cg_sd_tind_setup_present = false;
10649 dc_based_dupl_cfg_e dc_based_dupl_cfg;
10650 dupl_activation_e dc_based_dupl_activation;
10651 pdcp_sn_len_e dl_pdcp_sn_len;
10652 pdcp_sn_len_e ul_pdcp_sn_len;
10653 add_pdcp_dupl_tnl_list_l add_pdcp_dupl_tnl_list;
10654 rlc_dupl_info_s rlc_dupl_info;
10655 cg_sd_tind_setup_e cg_sd_tind_setup;
10656
10657 // sequence methods
10658 SRSASN_CODE pack(bit_ref& bref) const;
10659 SRSASN_CODE unpack(cbit_ref& bref);
10660 void to_json(json_writer& j) const;
10661};
10662
10663// DRBs-ToBeSetupMod-Item ::= SEQUENCE
10665 bool ext = false;
10666 bool ul_cfg_present = false;
10667 bool dupl_activation_present = false;
10668 bool ie_exts_present = false;
10669 uint8_t drb_id = 1;
10670 qos_info_c qos_info;
10671 ul_up_tnl_info_to_be_setup_list_l ul_up_tnl_info_to_be_setup_list;
10672 rlc_mode_e rlc_mode;
10673 ul_cfg_s ul_cfg;
10674 dupl_activation_e dupl_activation;
10676 // ...
10677
10678 // sequence methods
10679 SRSASN_CODE pack(bit_ref& bref) const;
10680 SRSASN_CODE unpack(cbit_ref& bref);
10681 void to_json(json_writer& j) const;
10682};
10683
10684// DRXCycle-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
10686
10687// LongDRXCycleLength ::= ENUMERATED
10689 enum options {
10690 ms10,
10691 ms20,
10692 ms32,
10693 ms40,
10694 ms60,
10695 ms64,
10696 ms70,
10697 ms80,
10698 ms128,
10699 ms160,
10700 ms256,
10701 ms320,
10702 ms512,
10703 ms640,
10704 ms1024,
10705 ms1280,
10706 ms2048,
10707 ms2560,
10708 ms5120,
10709 ms10240,
10710 // ...
10711 nulltype
10712 } value;
10713 typedef uint16_t number_type;
10714
10715 const char* to_string() const;
10716 uint16_t to_number() const;
10717};
10719
10720// ShortDRXCycleLength ::= ENUMERATED
10722 enum options {
10723 ms2,
10724 ms3,
10725 ms4,
10726 ms5,
10727 ms6,
10728 ms7,
10729 ms8,
10730 ms10,
10731 ms14,
10732 ms16,
10733 ms20,
10734 ms30,
10735 ms32,
10736 ms35,
10737 ms40,
10738 ms64,
10739 ms80,
10740 ms128,
10741 ms160,
10742 ms256,
10743 ms320,
10744 ms512,
10745 ms640,
10746 // ...
10747 nulltype
10748 } value;
10749 typedef uint16_t number_type;
10750
10751 const char* to_string() const;
10752 uint16_t to_number() const;
10753};
10755
10757
10758// DRXCycle ::= SEQUENCE
10760 bool ext = false;
10761 bool short_drx_cycle_len_present = false;
10762 bool short_drx_cycle_timer_present = false;
10763 bool ie_exts_present = false;
10764 long_drx_cycle_len_e long_drx_cycle_len;
10765 short_drx_cycle_len_e short_drx_cycle_len;
10766 uint8_t short_drx_cycle_timer = 1;
10768 // ...
10769
10770 // sequence methods
10771 SRSASN_CODE pack(bit_ref& bref) const;
10772 SRSASN_CODE unpack(cbit_ref& bref);
10773 void to_json(json_writer& j) const;
10774};
10775
10776// DUCURIMInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
10778
10780
10781// DUCURIMInformation ::= SEQUENCE
10783 bool ie_exts_present = false;
10784 fixed_bitstring<22, false, true> victim_gnb_set_id;
10785 rimrs_detection_status_e rimrs_detection_status;
10786 aggressor_cell_list_l aggressor_cell_list;
10788
10789 // sequence methods
10790 SRSASN_CODE pack(bit_ref& bref) const;
10791 SRSASN_CODE unpack(cbit_ref& bref);
10792 void to_json(json_writer& j) const;
10793};
10794
10795// DUCURadioInformationType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
10797
10798// DUCURadioInformationType ::= CHOICE
10800 struct types_opts {
10801 enum options { rim, choice_ext, nulltype } value;
10802
10803 const char* to_string() const;
10804 };
10806
10807 // choice methods
10808 du_cu_radio_info_type_c() = default;
10810 du_cu_radio_info_type_c& operator=(const du_cu_radio_info_type_c& other);
10811 ~du_cu_radio_info_type_c() { destroy_(); }
10812 void set(types::options e = types::nulltype);
10813 types type() const { return type_; }
10814 SRSASN_CODE pack(bit_ref& bref) const;
10815 SRSASN_CODE unpack(cbit_ref& bref);
10816 void to_json(json_writer& j) const;
10817 // getters
10818 du_cu_rim_info_s& rim()
10819 {
10820 assert_choice_type(types::rim, type_, "DUCURadioInformationType");
10821 return c.get<du_cu_rim_info_s>();
10822 }
10823 protocol_ie_single_container_s<du_cu_radio_info_type_ext_ies_o>& choice_ext()
10824 {
10825 assert_choice_type(types::choice_ext, type_, "DUCURadioInformationType");
10826 return c.get<protocol_ie_single_container_s<du_cu_radio_info_type_ext_ies_o>>();
10827 }
10828 const du_cu_rim_info_s& rim() const
10829 {
10830 assert_choice_type(types::rim, type_, "DUCURadioInformationType");
10831 return c.get<du_cu_rim_info_s>();
10832 }
10833 const protocol_ie_single_container_s<du_cu_radio_info_type_ext_ies_o>& choice_ext() const
10834 {
10835 assert_choice_type(types::choice_ext, type_, "DUCURadioInformationType");
10836 return c.get<protocol_ie_single_container_s<du_cu_radio_info_type_ext_ies_o>>();
10837 }
10838 du_cu_rim_info_s& set_rim();
10839 protocol_ie_single_container_s<du_cu_radio_info_type_ext_ies_o>& set_choice_ext();
10840
10841private:
10842 types type_;
10843 choice_buffer_t<du_cu_rim_info_s, protocol_ie_single_container_s<du_cu_radio_info_type_ext_ies_o>> c;
10844
10845 void destroy_();
10846};
10847
10848// InterFrequencyConfig-NoGap ::= ENUMERATED
10850 enum options { true_value, /*...*/ nulltype } value;
10851
10852 const char* to_string() const;
10853};
10855
10856// TwoPHRModeMCG ::= ENUMERATED
10858 enum options { enabled, /*...*/ nulltype } value;
10859
10860 const char* to_string() const;
10861};
10863
10864// TwoPHRModeSCG ::= ENUMERATED
10866 enum options { enabled, /*...*/ nulltype } value;
10867
10868 const char* to_string() const;
10869};
10871
10872// DUtoCURRCInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
10874 // Extension ::= OPEN TYPE
10875 struct ext_c {
10876 struct types_opts {
10877 enum options {
10878 drx_long_cycle_start_offset,
10879 sel_band_combination_idx,
10880 sel_feature_set_entry_idx,
10881 ph_info_scg,
10882 requested_band_combination_idx,
10883 requested_feature_set_entry_idx,
10884 drx_cfg,
10885 pdcch_blind_detection_scg,
10886 requested_pdcch_blind_detection_scg,
10887 ph_info_mcg,
10888 meas_gap_sharing_cfg,
10889 sl_phy_mac_rlc_cfg,
10890 sl_cfg_ded_eutra_info,
10891 requested_p_max_fr2,
10892 sdt_mac_phy_cg_cfg,
10893 mu_si_m_gap_cfg,
10894 sl_rlc_ch_to_add_mod_list,
10895 interfreq_cfg_no_gap,
10896 ul_gap_fr2_cfg,
10897 two_phr_mode_mcg,
10898 two_phr_mode_scg,
10899 nulltype
10900 } value;
10901 typedef uint8_t number_type;
10902
10903 const char* to_string() const;
10904 uint8_t to_number() const;
10905 };
10907
10908 // choice methods
10909 ext_c() = default;
10910 void set(types::options e = types::nulltype);
10911 types type() const { return type_; }
10912 SRSASN_CODE pack(bit_ref& bref) const;
10913 SRSASN_CODE unpack(cbit_ref& bref);
10914 void to_json(json_writer& j) const;
10915 // getters
10916 uint16_t& drx_long_cycle_start_offset();
10917 unbounded_octstring<true>& sel_band_combination_idx();
10918 unbounded_octstring<true>& sel_feature_set_entry_idx();
10919 unbounded_octstring<true>& ph_info_scg();
10920 unbounded_octstring<true>& requested_band_combination_idx();
10921 unbounded_octstring<true>& requested_feature_set_entry_idx();
10922 unbounded_octstring<true>& drx_cfg();
10923 unbounded_octstring<true>& pdcch_blind_detection_scg();
10924 unbounded_octstring<true>& requested_pdcch_blind_detection_scg();
10925 unbounded_octstring<true>& ph_info_mcg();
10926 unbounded_octstring<true>& meas_gap_sharing_cfg();
10927 unbounded_octstring<true>& sl_phy_mac_rlc_cfg();
10928 unbounded_octstring<true>& sl_cfg_ded_eutra_info();
10929 unbounded_octstring<true>& requested_p_max_fr2();
10930 unbounded_octstring<true>& sdt_mac_phy_cg_cfg();
10931 unbounded_octstring<true>& mu_si_m_gap_cfg();
10932 unbounded_octstring<true>& sl_rlc_ch_to_add_mod_list();
10933 interfreq_cfg_no_gap_e& interfreq_cfg_no_gap();
10934 unbounded_octstring<true>& ul_gap_fr2_cfg();
10935 two_phr_mode_mcg_e& two_phr_mode_mcg();
10936 two_phr_mode_scg_e& two_phr_mode_scg();
10937 const uint16_t& drx_long_cycle_start_offset() const;
10938 const unbounded_octstring<true>& sel_band_combination_idx() const;
10939 const unbounded_octstring<true>& sel_feature_set_entry_idx() const;
10940 const unbounded_octstring<true>& ph_info_scg() const;
10941 const unbounded_octstring<true>& requested_band_combination_idx() const;
10942 const unbounded_octstring<true>& requested_feature_set_entry_idx() const;
10943 const unbounded_octstring<true>& drx_cfg() const;
10944 const unbounded_octstring<true>& pdcch_blind_detection_scg() const;
10945 const unbounded_octstring<true>& requested_pdcch_blind_detection_scg() const;
10946 const unbounded_octstring<true>& ph_info_mcg() const;
10947 const unbounded_octstring<true>& meas_gap_sharing_cfg() const;
10948 const unbounded_octstring<true>& sl_phy_mac_rlc_cfg() const;
10949 const unbounded_octstring<true>& sl_cfg_ded_eutra_info() const;
10950 const unbounded_octstring<true>& requested_p_max_fr2() const;
10951 const unbounded_octstring<true>& sdt_mac_phy_cg_cfg() const;
10952 const unbounded_octstring<true>& mu_si_m_gap_cfg() const;
10953 const unbounded_octstring<true>& sl_rlc_ch_to_add_mod_list() const;
10954 const interfreq_cfg_no_gap_e& interfreq_cfg_no_gap() const;
10955 const unbounded_octstring<true>& ul_gap_fr2_cfg() const;
10956 const two_phr_mode_mcg_e& two_phr_mode_mcg() const;
10957 const two_phr_mode_scg_e& two_phr_mode_scg() const;
10958
10959 private:
10960 types type_;
10962 };
10963
10964 // members lookup methods
10965 static uint32_t idx_to_id(uint32_t idx);
10966 static bool is_id_valid(const uint32_t& id);
10967 static crit_e get_crit(const uint32_t& id);
10968 static ext_c get_ext(const uint32_t& id);
10969 static presence_e get_presence(const uint32_t& id);
10970};
10971
10973 bool drx_long_cycle_start_offset_present = false;
10974 bool sel_band_combination_idx_present = false;
10975 bool sel_feature_set_entry_idx_present = false;
10976 bool ph_info_scg_present = false;
10977 bool requested_band_combination_idx_present = false;
10978 bool requested_feature_set_entry_idx_present = false;
10979 bool drx_cfg_present = false;
10980 bool pdcch_blind_detection_scg_present = false;
10981 bool requested_pdcch_blind_detection_scg_present = false;
10982 bool ph_info_mcg_present = false;
10983 bool meas_gap_sharing_cfg_present = false;
10984 bool sl_phy_mac_rlc_cfg_present = false;
10985 bool sl_cfg_ded_eutra_info_present = false;
10986 bool requested_p_max_fr2_present = false;
10987 bool sdt_mac_phy_cg_cfg_present = false;
10988 bool mu_si_m_gap_cfg_present = false;
10989 bool sl_rlc_ch_to_add_mod_list_present = false;
10990 bool interfreq_cfg_no_gap_present = false;
10991 bool ul_gap_fr2_cfg_present = false;
10992 bool two_phr_mode_mcg_present = false;
10993 bool two_phr_mode_scg_present = false;
10994 uint16_t drx_long_cycle_start_offset;
10995 unbounded_octstring<true> sel_band_combination_idx;
10996 unbounded_octstring<true> sel_feature_set_entry_idx;
10997 unbounded_octstring<true> ph_info_scg;
10998 unbounded_octstring<true> requested_band_combination_idx;
10999 unbounded_octstring<true> requested_feature_set_entry_idx;
11001 unbounded_octstring<true> pdcch_blind_detection_scg;
11002 unbounded_octstring<true> requested_pdcch_blind_detection_scg;
11003 unbounded_octstring<true> ph_info_mcg;
11004 unbounded_octstring<true> meas_gap_sharing_cfg;
11005 unbounded_octstring<true> sl_phy_mac_rlc_cfg;
11006 unbounded_octstring<true> sl_cfg_ded_eutra_info;
11007 unbounded_octstring<true> requested_p_max_fr2;
11008 unbounded_octstring<true> sdt_mac_phy_cg_cfg;
11009 unbounded_octstring<true> mu_si_m_gap_cfg;
11010 unbounded_octstring<true> sl_rlc_ch_to_add_mod_list;
11011 interfreq_cfg_no_gap_e interfreq_cfg_no_gap;
11012 unbounded_octstring<true> ul_gap_fr2_cfg;
11013 two_phr_mode_mcg_e two_phr_mode_mcg;
11014 two_phr_mode_scg_e two_phr_mode_scg;
11015
11016 // sequence methods
11017 SRSASN_CODE pack(bit_ref& bref) const;
11018 SRSASN_CODE unpack(cbit_ref& bref);
11019 void to_json(json_writer& j) const;
11020};
11021
11022// DUtoCURRCInformation ::= SEQUENCE
11024 bool ext = false;
11025 bool ie_exts_present = false;
11026 unbounded_octstring<true> cell_group_cfg;
11027 unbounded_octstring<true> meas_gap_cfg;
11028 unbounded_octstring<true> requested_p_max_fr1;
11030 // ...
11031
11032 // sequence methods
11033 SRSASN_CODE pack(bit_ref& bref) const;
11034 SRSASN_CODE unpack(cbit_ref& bref);
11035 void to_json(json_writer& j) const;
11036};
11037
11038// DedicatedSIDeliveryNeededUE-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11040
11042
11043// Dedicated-SIDelivery-NeededUE-Item ::= SEQUENCE
11045 bool ext = false;
11046 bool ie_exts_present = false;
11047 uint64_t gnb_cu_ue_f1ap_id = 0;
11048 nr_cgi_s nr_cgi;
11050 // ...
11051
11052 // sequence methods
11053 SRSASN_CODE pack(bit_ref& bref) const;
11054 SRSASN_CODE unpack(cbit_ref& bref);
11055 void to_json(json_writer& j) const;
11056};
11057
11058// DynamicPQIDescriptor-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11060
11062
11063// DynamicPQIDescriptor ::= SEQUENCE
11066 enum options { gbr, non_gbr, delay_crit_grb, /*...*/ nulltype } value;
11067
11068 const char* to_string() const;
11069 };
11071
11072 // member variables
11073 bool res_type_present = false;
11074 bool averaging_win_present = false;
11075 bool max_data_burst_volume_present = false;
11076 bool ie_exts_present = false;
11077 res_type_e_ res_type;
11078 uint8_t qos_prio_level = 1;
11079 uint16_t packet_delay_budget = 0;
11080 packet_error_rate_s packet_error_rate;
11081 uint16_t averaging_win = 0;
11082 uint16_t max_data_burst_volume = 0;
11084
11085 // sequence methods
11086 SRSASN_CODE pack(bit_ref& bref) const;
11087 SRSASN_CODE unpack(cbit_ref& bref);
11088 void to_json(json_writer& j) const;
11089};
11090
11091// E-CID-MeasuredResults-Value-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
11093 // Value ::= OPEN TYPE
11094 struct value_c {
11095 struct types_opts {
11096 enum options { nr_tadv, nulltype } value;
11097 typedef uint8_t number_type;
11098
11099 const char* to_string() const;
11100 uint8_t to_number() const;
11101 };
11103
11104 // choice methods
11105 types type() const { return types::nr_tadv; }
11106 SRSASN_CODE pack(bit_ref& bref) const;
11107 SRSASN_CODE unpack(cbit_ref& bref);
11108 void to_json(json_writer& j) const;
11109 // getters
11110 uint16_t& nr_tadv() { return c; }
11111 const uint16_t& nr_tadv() const { return c; }
11112
11113 private:
11114 uint16_t c;
11115 };
11116
11117 // members lookup methods
11118 static uint32_t idx_to_id(uint32_t idx);
11119 static bool is_id_valid(const uint32_t& id);
11120 static crit_e get_crit(const uint32_t& id);
11121 static value_c get_value(const uint32_t& id);
11122 static presence_e get_presence(const uint32_t& id);
11123};
11124
11125// E-CID-MeasuredResults-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11126using e_c_id_measured_results_item_ext_ies_o = protocol_ext_empty_o;
11127
11128// E-CID-MeasuredResults-Value ::= CHOICE
11130 struct types_opts {
11131 enum options { value_angleof_arrival_nr, choice_ext, nulltype } value;
11132
11133 const char* to_string() const;
11134 };
11136
11137 // choice methods
11141 ~e_c_id_measured_results_value_c() { destroy_(); }
11142 void set(types::options e = types::nulltype);
11143 types type() const { return type_; }
11144 SRSASN_CODE pack(bit_ref& bref) const;
11145 SRSASN_CODE unpack(cbit_ref& bref);
11146 void to_json(json_writer& j) const;
11147 // getters
11148 ul_ao_a_s& value_angleof_arrival_nr()
11149 {
11150 assert_choice_type(types::value_angleof_arrival_nr, type_, "E-CID-MeasuredResults-Value");
11151 return c.get<ul_ao_a_s>();
11152 }
11153 protocol_ie_single_container_s<e_c_id_measured_results_value_ext_ies_o>& choice_ext()
11154 {
11155 assert_choice_type(types::choice_ext, type_, "E-CID-MeasuredResults-Value");
11156 return c.get<protocol_ie_single_container_s<e_c_id_measured_results_value_ext_ies_o>>();
11157 }
11158 const ul_ao_a_s& value_angleof_arrival_nr() const
11159 {
11160 assert_choice_type(types::value_angleof_arrival_nr, type_, "E-CID-MeasuredResults-Value");
11161 return c.get<ul_ao_a_s>();
11162 }
11163 const protocol_ie_single_container_s<e_c_id_measured_results_value_ext_ies_o>& choice_ext() const
11164 {
11165 assert_choice_type(types::choice_ext, type_, "E-CID-MeasuredResults-Value");
11166 return c.get<protocol_ie_single_container_s<e_c_id_measured_results_value_ext_ies_o>>();
11167 }
11168 ul_ao_a_s& set_value_angleof_arrival_nr();
11169 protocol_ie_single_container_s<e_c_id_measured_results_value_ext_ies_o>& set_choice_ext();
11170
11171private:
11172 types type_;
11173 choice_buffer_t<protocol_ie_single_container_s<e_c_id_measured_results_value_ext_ies_o>, ul_ao_a_s> c;
11174
11175 void destroy_();
11176};
11177
11178using e_c_id_measured_results_item_ext_ies_container = protocol_ext_container_empty_l;
11179
11180// E-CID-MeasuredResults-Item ::= SEQUENCE
11182 bool ie_exts_present = false;
11183 e_c_id_measured_results_value_c e_c_id_measured_results_value;
11185
11186 // sequence methods
11187 SRSASN_CODE pack(bit_ref& bref) const;
11188 SRSASN_CODE unpack(cbit_ref& bref);
11189 void to_json(json_writer& j) const;
11190};
11191
11192// E-CID-MeasuredResults-List ::= SEQUENCE (SIZE (1..64)) OF E-CID-MeasuredResults-Item
11194
11195// E-CID-MeasurementQuantitiesValue ::= ENUMERATED
11197 enum options { default_value, angle_of_arrival_nr, /*...*/ timing_advance_nr, nulltype } value;
11198
11199 const char* to_string() const;
11200};
11202
11203// E-CID-MeasurementQuantitiesValue-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11205
11207
11208// E-CID-MeasurementQuantities-Item ::= SEQUENCE
11210 bool ie_exts_present = false;
11211 e_c_id_meas_quantities_value_e e_c_id_meas_quantities_value;
11213
11214 // sequence methods
11215 SRSASN_CODE pack(bit_ref& bref) const;
11216 SRSASN_CODE unpack(cbit_ref& bref);
11217 void to_json(json_writer& j) const;
11218};
11219
11220// E-CID-MeasurementQuantities-ItemIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
11222 // Value ::= OPEN TYPE
11223 struct value_c {
11224 struct types_opts {
11225 enum options { e_c_id_meas_quantities_item, nulltype } value;
11226
11227 const char* to_string() const;
11228 };
11230
11231 // choice methods
11232 types type() const { return types::e_c_id_meas_quantities_item; }
11233 SRSASN_CODE pack(bit_ref& bref) const;
11234 SRSASN_CODE unpack(cbit_ref& bref);
11235 void to_json(json_writer& j) const;
11236 // getters
11237 e_c_id_meas_quantities_item_s& e_c_id_meas_quantities_item() { return c; }
11238 const e_c_id_meas_quantities_item_s& e_c_id_meas_quantities_item() const { return c; }
11239
11240 private:
11241 e_c_id_meas_quantities_item_s c;
11242 };
11243
11244 // members lookup methods
11245 static uint32_t idx_to_id(uint32_t idx);
11246 static bool is_id_valid(const uint32_t& id);
11247 static crit_e get_crit(const uint32_t& id);
11248 static value_c get_value(const uint32_t& id);
11249 static presence_e get_presence(const uint32_t& id);
11250};
11251
11252// E-CID-MeasurementQuantities ::= SEQUENCE (SIZE (1..64)) OF ProtocolIE-SingleContainer{F1AP-PROTOCOL-IES :
11253// IEsSetParam}
11254using e_c_id_meas_quantities_l = dyn_array<protocol_ie_single_container_s<e_c_id_meas_quantities_item_ies_o>>;
11255
11256// NGRANHighAccuracyAccessPointPosition-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11257using ngran_high_accuracy_access_point_position_ext_ies_o = protocol_ext_empty_o;
11258
11259using ngran_high_accuracy_access_point_position_ext_ies_container = protocol_ext_container_empty_l;
11260
11261// NGRANHighAccuracyAccessPointPosition ::= SEQUENCE
11263 bool ie_exts_present = false;
11264 int64_t latitude = -2147483648;
11265 int64_t longitude = -2147483648;
11266 int32_t altitude = -64000;
11267 uint16_t uncertainty_semi_major = 0;
11268 uint16_t uncertainty_semi_minor = 0;
11269 uint8_t orientation_of_major_axis = 0;
11270 uint8_t horizontal_confidence = 0;
11271 uint16_t uncertainty_altitude = 0;
11272 uint8_t vertical_confidence = 0;
11274
11275 // sequence methods
11276 SRSASN_CODE pack(bit_ref& bref) const;
11277 SRSASN_CODE unpack(cbit_ref& bref);
11278 void to_json(json_writer& j) const;
11279};
11280
11281// ReferencePoint-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
11283
11284// TRPPositionDirectAccuracy-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
11286
11287// TRPReferencePointType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
11289
11290// ReferencePoint ::= CHOICE
11292 struct types_opts {
11293 enum options { coordinate_id, ref_point_coordinate, ref_point_coordinate_ha, choice_ext, nulltype } value;
11294
11295 const char* to_string() const;
11296 };
11298
11299 // choice methods
11300 ref_point_c() = default;
11301 ref_point_c(const ref_point_c& other);
11302 ref_point_c& operator=(const ref_point_c& other);
11303 ~ref_point_c() { destroy_(); }
11304 void set(types::options e = types::nulltype);
11305 types type() const { return type_; }
11306 SRSASN_CODE pack(bit_ref& bref) const;
11307 SRSASN_CODE unpack(cbit_ref& bref);
11308 void to_json(json_writer& j) const;
11309 // getters
11310 uint16_t& coordinate_id()
11311 {
11312 assert_choice_type(types::coordinate_id, type_, "ReferencePoint");
11313 return c.get<uint16_t>();
11314 }
11315 access_point_position_s& ref_point_coordinate()
11316 {
11317 assert_choice_type(types::ref_point_coordinate, type_, "ReferencePoint");
11318 return c.get<access_point_position_s>();
11319 }
11320 ngran_high_accuracy_access_point_position_s& ref_point_coordinate_ha()
11321 {
11322 assert_choice_type(types::ref_point_coordinate_ha, type_, "ReferencePoint");
11323 return c.get<ngran_high_accuracy_access_point_position_s>();
11324 }
11325 protocol_ie_single_container_s<ref_point_ext_ies_o>& choice_ext()
11326 {
11327 assert_choice_type(types::choice_ext, type_, "ReferencePoint");
11328 return c.get<protocol_ie_single_container_s<ref_point_ext_ies_o>>();
11329 }
11330 const uint16_t& coordinate_id() const
11331 {
11332 assert_choice_type(types::coordinate_id, type_, "ReferencePoint");
11333 return c.get<uint16_t>();
11334 }
11335 const access_point_position_s& ref_point_coordinate() const
11336 {
11337 assert_choice_type(types::ref_point_coordinate, type_, "ReferencePoint");
11338 return c.get<access_point_position_s>();
11339 }
11340 const ngran_high_accuracy_access_point_position_s& ref_point_coordinate_ha() const
11341 {
11342 assert_choice_type(types::ref_point_coordinate_ha, type_, "ReferencePoint");
11343 return c.get<ngran_high_accuracy_access_point_position_s>();
11344 }
11345 const protocol_ie_single_container_s<ref_point_ext_ies_o>& choice_ext() const
11346 {
11347 assert_choice_type(types::choice_ext, type_, "ReferencePoint");
11348 return c.get<protocol_ie_single_container_s<ref_point_ext_ies_o>>();
11349 }
11350 uint16_t& set_coordinate_id();
11351 access_point_position_s& set_ref_point_coordinate();
11352 ngran_high_accuracy_access_point_position_s& set_ref_point_coordinate_ha();
11353 protocol_ie_single_container_s<ref_point_ext_ies_o>& set_choice_ext();
11354
11355private:
11356 types type_;
11357 choice_buffer_t<access_point_position_s,
11358 ngran_high_accuracy_access_point_position_s,
11359 protocol_ie_single_container_s<ref_point_ext_ies_o>>
11360 c;
11361
11362 void destroy_();
11363};
11364
11365// TRPPositionDirect-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11366using trp_position_direct_ext_ies_o = protocol_ext_empty_o;
11367
11368// TRPPositionDirectAccuracy ::= CHOICE
11370 struct types_opts {
11371 enum options { trp_position, trph_aposition, choice_ext, nulltype } value;
11372
11373 const char* to_string() const;
11374 };
11376
11377 // choice methods
11381 ~trp_position_direct_accuracy_c() { destroy_(); }
11382 void set(types::options e = types::nulltype);
11383 types type() const { return type_; }
11384 SRSASN_CODE pack(bit_ref& bref) const;
11385 SRSASN_CODE unpack(cbit_ref& bref);
11386 void to_json(json_writer& j) const;
11387 // getters
11388 access_point_position_s& trp_position()
11389 {
11390 assert_choice_type(types::trp_position, type_, "TRPPositionDirectAccuracy");
11391 return c.get<access_point_position_s>();
11392 }
11393 ngran_high_accuracy_access_point_position_s& trph_aposition()
11394 {
11395 assert_choice_type(types::trph_aposition, type_, "TRPPositionDirectAccuracy");
11396 return c.get<ngran_high_accuracy_access_point_position_s>();
11397 }
11398 protocol_ie_single_container_s<trp_position_direct_accuracy_ext_ies_o>& choice_ext()
11399 {
11400 assert_choice_type(types::choice_ext, type_, "TRPPositionDirectAccuracy");
11401 return c.get<protocol_ie_single_container_s<trp_position_direct_accuracy_ext_ies_o>>();
11402 }
11403 const access_point_position_s& trp_position() const
11404 {
11405 assert_choice_type(types::trp_position, type_, "TRPPositionDirectAccuracy");
11406 return c.get<access_point_position_s>();
11407 }
11408 const ngran_high_accuracy_access_point_position_s& trph_aposition() const
11409 {
11410 assert_choice_type(types::trph_aposition, type_, "TRPPositionDirectAccuracy");
11411 return c.get<ngran_high_accuracy_access_point_position_s>();
11412 }
11413 const protocol_ie_single_container_s<trp_position_direct_accuracy_ext_ies_o>& choice_ext() const
11414 {
11415 assert_choice_type(types::choice_ext, type_, "TRPPositionDirectAccuracy");
11416 return c.get<protocol_ie_single_container_s<trp_position_direct_accuracy_ext_ies_o>>();
11417 }
11418 access_point_position_s& set_trp_position();
11419 ngran_high_accuracy_access_point_position_s& set_trph_aposition();
11420 protocol_ie_single_container_s<trp_position_direct_accuracy_ext_ies_o>& set_choice_ext();
11421
11422private:
11423 types type_;
11424 choice_buffer_t<access_point_position_s,
11425 ngran_high_accuracy_access_point_position_s,
11426 protocol_ie_single_container_s<trp_position_direct_accuracy_ext_ies_o>>
11427 c;
11428
11429 void destroy_();
11430};
11431
11432// TRPPositionReferenced-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11433using trp_position_refd_ext_ies_o = protocol_ext_empty_o;
11434
11435// TRPReferencePointType ::= CHOICE
11437 struct types_opts {
11438 enum options { trp_position_relative_geodetic, trp_position_relative_cartesian, choice_ext, nulltype } value;
11439
11440 const char* to_string() const;
11441 };
11443
11444 // choice methods
11445 trp_ref_point_type_c() = default;
11447 trp_ref_point_type_c& operator=(const trp_ref_point_type_c& other);
11448 ~trp_ref_point_type_c() { destroy_(); }
11449 void set(types::options e = types::nulltype);
11450 types type() const { return type_; }
11451 SRSASN_CODE pack(bit_ref& bref) const;
11452 SRSASN_CODE unpack(cbit_ref& bref);
11453 void to_json(json_writer& j) const;
11454 // getters
11455 relative_geodetic_location_s& trp_position_relative_geodetic()
11456 {
11457 assert_choice_type(types::trp_position_relative_geodetic, type_, "TRPReferencePointType");
11458 return c.get<relative_geodetic_location_s>();
11459 }
11460 relative_cartesian_location_s& trp_position_relative_cartesian()
11461 {
11462 assert_choice_type(types::trp_position_relative_cartesian, type_, "TRPReferencePointType");
11463 return c.get<relative_cartesian_location_s>();
11464 }
11465 protocol_ie_single_container_s<trp_ref_point_type_ext_ies_o>& choice_ext()
11466 {
11467 assert_choice_type(types::choice_ext, type_, "TRPReferencePointType");
11468 return c.get<protocol_ie_single_container_s<trp_ref_point_type_ext_ies_o>>();
11469 }
11470 const relative_geodetic_location_s& trp_position_relative_geodetic() const
11471 {
11472 assert_choice_type(types::trp_position_relative_geodetic, type_, "TRPReferencePointType");
11473 return c.get<relative_geodetic_location_s>();
11474 }
11475 const relative_cartesian_location_s& trp_position_relative_cartesian() const
11476 {
11477 assert_choice_type(types::trp_position_relative_cartesian, type_, "TRPReferencePointType");
11478 return c.get<relative_cartesian_location_s>();
11479 }
11480 const protocol_ie_single_container_s<trp_ref_point_type_ext_ies_o>& choice_ext() const
11481 {
11482 assert_choice_type(types::choice_ext, type_, "TRPReferencePointType");
11483 return c.get<protocol_ie_single_container_s<trp_ref_point_type_ext_ies_o>>();
11484 }
11485 relative_geodetic_location_s& set_trp_position_relative_geodetic();
11486 relative_cartesian_location_s& set_trp_position_relative_cartesian();
11487 protocol_ie_single_container_s<trp_ref_point_type_ext_ies_o>& set_choice_ext();
11488
11489private:
11490 types type_;
11491 choice_buffer_t<protocol_ie_single_container_s<trp_ref_point_type_ext_ies_o>,
11492 relative_cartesian_location_s,
11493 relative_geodetic_location_s>
11494 c;
11495
11496 void destroy_();
11497};
11498
11499// TRPPositionDefinitionType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
11500using trp_position_definition_type_ext_ies_o = protocol_ies_empty_o;
11501
11502using trp_position_direct_ext_ies_container = protocol_ext_container_empty_l;
11503
11504// TRPPositionDirect ::= SEQUENCE
11506 bool ie_exts_present = false;
11509
11510 // sequence methods
11511 SRSASN_CODE pack(bit_ref& bref) const;
11512 SRSASN_CODE unpack(cbit_ref& bref);
11513 void to_json(json_writer& j) const;
11514};
11515
11517
11518// TRPPositionReferenced ::= SEQUENCE
11520 bool ie_exts_present = false;
11521 ref_point_c ref_point;
11522 trp_ref_point_type_c ref_point_type;
11524
11525 // sequence methods
11526 SRSASN_CODE pack(bit_ref& bref) const;
11527 SRSASN_CODE unpack(cbit_ref& bref);
11528 void to_json(json_writer& j) const;
11529};
11530
11531// GeographicalCoordinates-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11533 // Extension ::= OPEN TYPE
11534 struct ext_c {
11535 struct types_opts {
11536 enum options { arp_location_info, nulltype } value;
11537
11538 const char* to_string() const;
11539 };
11541
11542 // choice methods
11543 types type() const { return types::arp_location_info; }
11544 SRSASN_CODE pack(bit_ref& bref) const;
11545 SRSASN_CODE unpack(cbit_ref& bref);
11546 void to_json(json_writer& j) const;
11547 // getters
11548 arp_location_info_l& arp_location_info() { return c; }
11549 const arp_location_info_l& arp_location_info() const { return c; }
11550
11551 private:
11552 arp_location_info_l c;
11553 };
11554
11555 // members lookup methods
11556 static uint32_t idx_to_id(uint32_t idx);
11557 static bool is_id_valid(const uint32_t& id);
11558 static crit_e get_crit(const uint32_t& id);
11559 static ext_c get_ext(const uint32_t& id);
11560 static presence_e get_presence(const uint32_t& id);
11561};
11562
11563// TRPPositionDefinitionType ::= CHOICE
11565 struct types_opts {
11566 enum options { direct, refd, choice_ext, nulltype } value;
11567
11568 const char* to_string() const;
11569 };
11571
11572 // choice methods
11576 ~trp_position_definition_type_c() { destroy_(); }
11577 void set(types::options e = types::nulltype);
11578 types type() const { return type_; }
11579 SRSASN_CODE pack(bit_ref& bref) const;
11580 SRSASN_CODE unpack(cbit_ref& bref);
11581 void to_json(json_writer& j) const;
11582 // getters
11583 trp_position_direct_s& direct()
11584 {
11585 assert_choice_type(types::direct, type_, "TRPPositionDefinitionType");
11586 return c.get<trp_position_direct_s>();
11587 }
11588 trp_position_refd_s& refd()
11589 {
11590 assert_choice_type(types::refd, type_, "TRPPositionDefinitionType");
11591 return c.get<trp_position_refd_s>();
11592 }
11593 protocol_ie_single_container_s<trp_position_definition_type_ext_ies_o>& choice_ext()
11594 {
11595 assert_choice_type(types::choice_ext, type_, "TRPPositionDefinitionType");
11596 return c.get<protocol_ie_single_container_s<trp_position_definition_type_ext_ies_o>>();
11597 }
11598 const trp_position_direct_s& direct() const
11599 {
11600 assert_choice_type(types::direct, type_, "TRPPositionDefinitionType");
11601 return c.get<trp_position_direct_s>();
11602 }
11603 const trp_position_refd_s& refd() const
11604 {
11605 assert_choice_type(types::refd, type_, "TRPPositionDefinitionType");
11606 return c.get<trp_position_refd_s>();
11607 }
11608 const protocol_ie_single_container_s<trp_position_definition_type_ext_ies_o>& choice_ext() const
11609 {
11610 assert_choice_type(types::choice_ext, type_, "TRPPositionDefinitionType");
11611 return c.get<protocol_ie_single_container_s<trp_position_definition_type_ext_ies_o>>();
11612 }
11613 trp_position_direct_s& set_direct();
11614 trp_position_refd_s& set_refd();
11615 protocol_ie_single_container_s<trp_position_definition_type_ext_ies_o>& set_choice_ext();
11616
11617private:
11618 types type_;
11619 choice_buffer_t<protocol_ie_single_container_s<trp_position_definition_type_ext_ies_o>,
11620 trp_position_direct_s,
11621 trp_position_refd_s>
11622 c;
11623
11624 void destroy_();
11625};
11626
11627// E-CID-MeasurementResult-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11628using e_c_id_meas_result_ext_ies_o = protocol_ext_empty_o;
11629
11630// GeographicalCoordinates ::= SEQUENCE
11632 bool dl_prs_res_coordinates_present = false;
11633 trp_position_definition_type_c trp_position_definition_type;
11634 dl_prs_res_coordinates_s dl_prs_res_coordinates;
11636
11637 // sequence methods
11638 SRSASN_CODE pack(bit_ref& bref) const;
11639 SRSASN_CODE unpack(cbit_ref& bref);
11640 void to_json(json_writer& j) const;
11641};
11642
11644
11645// E-CID-MeasurementResult ::= SEQUENCE
11647 bool geographical_coordinates_present = false;
11648 bool ie_exts_present = false;
11649 geographical_coordinates_s geographical_coordinates;
11650 e_c_id_measured_results_list_l measured_results_list;
11652
11653 // sequence methods
11654 SRSASN_CODE pack(bit_ref& bref) const;
11655 SRSASN_CODE unpack(cbit_ref& bref);
11656 void to_json(json_writer& j) const;
11657};
11658
11659// E-CID-ReportCharacteristics ::= ENUMERATED
11661 enum options { on_demand, periodic, /*...*/ nulltype } value;
11662
11663 const char* to_string() const;
11664};
11666
11667// MeasurementPeriodicity ::= ENUMERATED
11669 enum options {
11670 ms120,
11671 ms240,
11672 ms480,
11673 ms640,
11674 ms1024,
11675 ms2048,
11676 ms5120,
11677 ms10240,
11678 min1,
11679 min6,
11680 min12,
11681 min30,
11682 // ...
11683 ms20480,
11684 ms40960,
11685 extended,
11686 nulltype
11687 } value;
11688 typedef uint16_t number_type;
11689
11690 const char* to_string() const;
11691 uint16_t to_number() const;
11692};
11694
11695// PosMeasurementPeriodicityNR-AoA ::= ENUMERATED
11697 enum options {
11698 ms160,
11699 ms320,
11700 ms640,
11701 ms1280,
11702 ms2560,
11703 ms5120,
11704 ms10240,
11705 ms20480,
11706 ms40960,
11707 ms61440,
11708 ms81920,
11709 ms368640,
11710 ms737280,
11711 ms1843200,
11712 // ...
11713 nulltype
11714 } value;
11715 typedef uint32_t number_type;
11716
11717 const char* to_string() const;
11718 uint32_t to_number() const;
11719};
11721
11722// EUTRA-Coex-FDD-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11724
11725// EUTRA-Transmission-Bandwidth ::= ENUMERATED
11727 enum options { bw6, bw15, bw25, bw50, bw75, bw100, /*...*/ nulltype } value;
11728 typedef uint8_t number_type;
11729
11730 const char* to_string() const;
11731 uint8_t to_number() const;
11732};
11734
11736
11737// EUTRA-Coex-FDD-Info ::= SEQUENCE
11739 bool ext = false;
11740 bool ul_earfcn_present = false;
11741 bool ul_tx_bw_present = false;
11742 bool ie_exts_present = false;
11743 uint32_t ul_earfcn = 0;
11744 uint32_t dl_earfcn = 0;
11745 eutra_tx_bw_e ul_tx_bw;
11746 eutra_tx_bw_e dl_tx_bw;
11748 // ...
11749
11750 // sequence methods
11751 SRSASN_CODE pack(bit_ref& bref) const;
11752 SRSASN_CODE unpack(cbit_ref& bref);
11753 void to_json(json_writer& j) const;
11754};
11755
11756// EUTRA-CyclicPrefixDL ::= ENUMERATED
11758 enum options { normal, extended, /*...*/ nulltype } value;
11759
11760 const char* to_string() const;
11761};
11763
11764// EUTRA-CyclicPrefixUL ::= ENUMERATED
11766 enum options { normal, extended, /*...*/ nulltype } value;
11767
11768 const char* to_string() const;
11769};
11771
11772// EUTRA-SpecialSubframe-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11774
11775// EUTRA-SpecialSubframePatterns ::= ENUMERATED
11777 enum options { ssp0, ssp1, ssp2, ssp3, ssp4, ssp5, ssp6, ssp7, ssp8, ssp9, ssp10, /*...*/ nulltype } value;
11778 typedef uint8_t number_type;
11779
11780 const char* to_string() const;
11781 uint8_t to_number() const;
11782};
11784
11785// EUTRA-Coex-TDD-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11787
11789
11790// EUTRA-SpecialSubframe-Info ::= SEQUENCE
11792 bool ext = false;
11793 bool ie_exts_present = false;
11794 eutra_special_sf_patterns_e special_sf_patterns;
11795 eutra_cp_dl_e cp_dl;
11796 eutra_cp_ul_e cp_ul;
11798 // ...
11799
11800 // sequence methods
11801 SRSASN_CODE pack(bit_ref& bref) const;
11802 SRSASN_CODE unpack(cbit_ref& bref);
11803 void to_json(json_writer& j) const;
11804};
11805
11806// EUTRA-SubframeAssignment ::= ENUMERATED
11808 enum options { sa0, sa1, sa2, sa3, sa4, sa5, sa6, /*...*/ nulltype } value;
11809 typedef uint8_t number_type;
11810
11811 const char* to_string() const;
11812 uint8_t to_number() const;
11813};
11815
11817
11818// EUTRA-Coex-TDD-Info ::= SEQUENCE
11820 bool ext = false;
11821 bool ie_exts_present = false;
11822 uint32_t earfcn = 0;
11823 eutra_tx_bw_e tx_bw;
11824 eutra_sf_assign_e sf_assign;
11825 eutra_special_sf_info_s special_sf_info;
11827 // ...
11828
11829 // sequence methods
11830 SRSASN_CODE pack(bit_ref& bref) const;
11831 SRSASN_CODE unpack(cbit_ref& bref);
11832 void to_json(json_writer& j) const;
11833};
11834
11835// EUTRA-Coex-Mode-Info ::= CHOICE
11837 struct types_opts {
11838 enum options { fdd, tdd, /*...*/ nulltype } value;
11839
11840 const char* to_string() const;
11841 };
11843
11844 // choice methods
11845 eutra_coex_mode_info_c() = default;
11847 eutra_coex_mode_info_c& operator=(const eutra_coex_mode_info_c& other);
11848 ~eutra_coex_mode_info_c() { destroy_(); }
11849 void set(types::options e = types::nulltype);
11850 types type() const { return type_; }
11851 SRSASN_CODE pack(bit_ref& bref) const;
11852 SRSASN_CODE unpack(cbit_ref& bref);
11853 void to_json(json_writer& j) const;
11854 // getters
11855 eutra_coex_fdd_info_s& fdd()
11856 {
11857 assert_choice_type(types::fdd, type_, "EUTRA-Coex-Mode-Info");
11858 return c.get<eutra_coex_fdd_info_s>();
11859 }
11860 eutra_coex_tdd_info_s& tdd()
11861 {
11862 assert_choice_type(types::tdd, type_, "EUTRA-Coex-Mode-Info");
11863 return c.get<eutra_coex_tdd_info_s>();
11864 }
11865 const eutra_coex_fdd_info_s& fdd() const
11866 {
11867 assert_choice_type(types::fdd, type_, "EUTRA-Coex-Mode-Info");
11868 return c.get<eutra_coex_fdd_info_s>();
11869 }
11870 const eutra_coex_tdd_info_s& tdd() const
11871 {
11872 assert_choice_type(types::tdd, type_, "EUTRA-Coex-Mode-Info");
11873 return c.get<eutra_coex_tdd_info_s>();
11874 }
11875 eutra_coex_fdd_info_s& set_fdd();
11876 eutra_coex_tdd_info_s& set_tdd();
11877
11878private:
11879 types type_;
11880 choice_buffer_t<eutra_coex_fdd_info_s, eutra_coex_tdd_info_s> c;
11881
11882 void destroy_();
11883};
11884
11885// EUTRA-FDD-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11886using eutra_fdd_info_ext_ies_o = protocol_ext_empty_o;
11887
11888using eutra_fdd_info_ext_ies_container = protocol_ext_container_empty_l;
11889
11890// EUTRA-FDD-Info ::= SEQUENCE
11892 bool ext = false;
11893 bool ie_exts_present = false;
11894 uint16_t ul_offset_to_point_a = 0;
11895 uint16_t dl_offset_to_point_a = 0;
11897 // ...
11898
11899 // sequence methods
11900 SRSASN_CODE pack(bit_ref& bref) const;
11901 SRSASN_CODE unpack(cbit_ref& bref);
11902 void to_json(json_writer& j) const;
11903};
11904
11905// EUTRA-TDD-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11907
11908// EUTRA-Mode-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
11910
11912
11913// EUTRA-TDD-Info ::= SEQUENCE
11915 bool ext = false;
11916 bool ie_exts_present = false;
11917 uint16_t offset_to_point_a = 0;
11919 // ...
11920
11921 // sequence methods
11922 SRSASN_CODE pack(bit_ref& bref) const;
11923 SRSASN_CODE unpack(cbit_ref& bref);
11924 void to_json(json_writer& j) const;
11925};
11926
11927// EUTRA-Mode-Info ::= CHOICE
11929 struct types_opts {
11930 enum options { eutra_fdd, eutra_tdd, choice_ext, nulltype } value;
11931
11932 const char* to_string() const;
11933 };
11935
11936 // choice methods
11937 eutra_mode_info_c() = default;
11939 eutra_mode_info_c& operator=(const eutra_mode_info_c& other);
11940 ~eutra_mode_info_c() { destroy_(); }
11941 void set(types::options e = types::nulltype);
11942 types type() const { return type_; }
11943 SRSASN_CODE pack(bit_ref& bref) const;
11944 SRSASN_CODE unpack(cbit_ref& bref);
11945 void to_json(json_writer& j) const;
11946 // getters
11947 eutra_fdd_info_s& eutra_fdd()
11948 {
11949 assert_choice_type(types::eutra_fdd, type_, "EUTRA-Mode-Info");
11950 return c.get<eutra_fdd_info_s>();
11951 }
11952 eutra_tdd_info_s& eutra_tdd()
11953 {
11954 assert_choice_type(types::eutra_tdd, type_, "EUTRA-Mode-Info");
11955 return c.get<eutra_tdd_info_s>();
11956 }
11957 protocol_ie_single_container_s<eutra_mode_info_ext_ies_o>& choice_ext()
11958 {
11959 assert_choice_type(types::choice_ext, type_, "EUTRA-Mode-Info");
11960 return c.get<protocol_ie_single_container_s<eutra_mode_info_ext_ies_o>>();
11961 }
11962 const eutra_fdd_info_s& eutra_fdd() const
11963 {
11964 assert_choice_type(types::eutra_fdd, type_, "EUTRA-Mode-Info");
11965 return c.get<eutra_fdd_info_s>();
11966 }
11967 const eutra_tdd_info_s& eutra_tdd() const
11968 {
11969 assert_choice_type(types::eutra_tdd, type_, "EUTRA-Mode-Info");
11970 return c.get<eutra_tdd_info_s>();
11971 }
11972 const protocol_ie_single_container_s<eutra_mode_info_ext_ies_o>& choice_ext() const
11973 {
11974 assert_choice_type(types::choice_ext, type_, "EUTRA-Mode-Info");
11975 return c.get<protocol_ie_single_container_s<eutra_mode_info_ext_ies_o>>();
11976 }
11977 eutra_fdd_info_s& set_eutra_fdd();
11978 eutra_tdd_info_s& set_eutra_tdd();
11979 protocol_ie_single_container_s<eutra_mode_info_ext_ies_o>& set_choice_ext();
11980
11981private:
11982 types type_;
11983 choice_buffer_t<eutra_fdd_info_s, eutra_tdd_info_s, protocol_ie_single_container_s<eutra_mode_info_ext_ies_o>> c;
11984
11985 void destroy_();
11986};
11987
11988// EUTRA-PRACH-Configuration-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
11989using eutra_prach_cfg_ext_ies_o = protocol_ext_empty_o;
11990
11991using eutra_prach_cfg_ext_ies_container = protocol_ext_container_empty_l;
11992
11993// EUTRA-PRACH-Configuration ::= SEQUENCE
11995 bool ext = false;
11996 bool prach_cfg_idx_present = false;
11997 bool ie_exts_present = false;
11998 uint16_t root_seq_idx = 0;
11999 uint8_t zero_correlation_idx = 0;
12000 bool high_speed_flag = false;
12001 uint8_t prach_freq_offset = 0;
12002 uint8_t prach_cfg_idx = 0;
12004 // ...
12005
12006 // sequence methods
12007 SRSASN_CODE pack(bit_ref& bref) const;
12008 SRSASN_CODE unpack(cbit_ref& bref);
12009 void to_json(json_writer& j) const;
12010};
12011
12012// Served-EUTRA-Cell-Information-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12014
12015// EUTRACells-List-itemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12017
12019
12020// Served-EUTRA-Cells-Information ::= SEQUENCE
12022 bool ext = false;
12023 bool ie_exts_present = false;
12024 eutra_mode_info_c eutra_mode_info;
12025 unbounded_octstring<true> protected_eutra_res_ind;
12027 // ...
12028
12029 // sequence methods
12030 SRSASN_CODE pack(bit_ref& bref) const;
12031 SRSASN_CODE unpack(cbit_ref& bref);
12032 void to_json(json_writer& j) const;
12033};
12034
12036
12037// EUTRACells-List-item ::= SEQUENCE
12039 bool ie_exts_present = false;
12041 served_eutra_cells_info_s served_eutra_cells_info;
12043
12044 // sequence methods
12045 SRSASN_CODE pack(bit_ref& bref) const;
12046 SRSASN_CODE unpack(cbit_ref& bref);
12047 void to_json(json_writer& j) const;
12048};
12049
12050// EUTRACells-List ::= SEQUENCE (SIZE (1..256)) OF EUTRACells-List-item
12052
12053// Extended-GNB-CU-Name-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12055
12057
12058// Extended-GNB-CU-Name ::= SEQUENCE
12060 bool ext = false;
12061 bool gnb_cu_name_visible_string_present = false;
12062 bool gnb_cu_name_utf8_string_present = false;
12063 bool ie_exts_present = false;
12064 visible_string<1, 150, true, true> gnb_cu_name_visible_string;
12065 utf8_string<1, 150, true, true> gnb_cu_name_utf8_string;
12067 // ...
12068
12069 // sequence methods
12070 SRSASN_CODE pack(bit_ref& bref) const;
12071 SRSASN_CODE unpack(cbit_ref& bref);
12072 void to_json(json_writer& j) const;
12073};
12074
12075// Extended-GNB-DU-Name-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12077
12079
12080// Extended-GNB-DU-Name ::= SEQUENCE
12082 bool ext = false;
12083 bool gnb_du_name_visible_string_present = false;
12084 bool gnb_du_name_utf8_string_present = false;
12085 bool ie_exts_present = false;
12086 visible_string<1, 150, true, true> gnb_du_name_visible_string;
12087 utf8_string<1, 150, true, true> gnb_du_name_utf8_string;
12089 // ...
12090
12091 // sequence methods
12092 SRSASN_CODE pack(bit_ref& bref) const;
12093 SRSASN_CODE unpack(cbit_ref& bref);
12094 void to_json(json_writer& j) const;
12095};
12096
12097// ExtendedAdditionalPathList-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12099
12101
12102// ExtendedAdditionalPathList-Item ::= SEQUENCE
12104 bool ext = false;
12105 bool path_quality_present = false;
12106 bool multiple_ul_ao_a_present = false;
12107 bool path_pwr_present = false;
12108 bool ie_exts_present = false;
12109 relative_path_delay_c relative_time_of_path;
12110 trp_meas_quality_s path_quality;
12111 multiple_ul_ao_a_s multiple_ul_ao_a;
12112 ul_srs_rsrp_p_s path_pwr;
12114 // ...
12115
12116 // sequence methods
12117 SRSASN_CODE pack(bit_ref& bref) const;
12118 SRSASN_CODE unpack(cbit_ref& bref);
12119 void to_json(json_writer& j) const;
12120};
12121
12122// ExtendedAdditionalPathList ::= SEQUENCE (SIZE (1..8)) OF ExtendedAdditionalPathList-Item
12124
12125// SliceSupportItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12127
12129
12130// SliceSupportItem ::= SEQUENCE
12132 bool ie_exts_present = false;
12133 snssai_s snssai;
12135
12136 // sequence methods
12137 SRSASN_CODE pack(bit_ref& bref) const;
12138 SRSASN_CODE unpack(cbit_ref& bref);
12139 void to_json(json_writer& j) const;
12140};
12141
12142// ExtendedSliceSupportList ::= SEQUENCE (SIZE (1..65535)) OF SliceSupportItem
12144
12145// NSAGSupportItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12147
12148// NPNSupportInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
12150
12152
12153// NSAGSupportItem ::= SEQUENCE
12155 bool ext = false;
12156 bool ie_exts_present = false;
12157 uint16_t nsag_id = 0;
12158 extended_slice_support_list_l nsag_slice_support;
12160 // ...
12161
12162 // sequence methods
12163 SRSASN_CODE pack(bit_ref& bref) const;
12164 SRSASN_CODE unpack(cbit_ref& bref);
12165 void to_json(json_writer& j) const;
12166};
12167
12168// NPNSupportInfo ::= CHOICE
12170 struct types_opts {
12171 enum options { sn_pn_info, choice_ext, nulltype } value;
12172
12173 const char* to_string() const;
12174 };
12176
12177 // choice methods
12178 npn_support_info_c() = default;
12180 npn_support_info_c& operator=(const npn_support_info_c& other);
12181 ~npn_support_info_c() { destroy_(); }
12182 void set(types::options e = types::nulltype);
12183 types type() const { return type_; }
12184 SRSASN_CODE pack(bit_ref& bref) const;
12185 SRSASN_CODE unpack(cbit_ref& bref);
12186 void to_json(json_writer& j) const;
12187 // getters
12189 {
12190 assert_choice_type(types::sn_pn_info, type_, "NPNSupportInfo");
12191 return c.get<fixed_bitstring<44, false, true>>();
12192 }
12193 protocol_ie_single_container_s<npn_support_info_ext_ies_o>& choice_ext()
12194 {
12195 assert_choice_type(types::choice_ext, type_, "NPNSupportInfo");
12196 return c.get<protocol_ie_single_container_s<npn_support_info_ext_ies_o>>();
12197 }
12198 const fixed_bitstring<44, false, true>& sn_pn_info() const
12199 {
12200 assert_choice_type(types::sn_pn_info, type_, "NPNSupportInfo");
12201 return c.get<fixed_bitstring<44, false, true>>();
12202 }
12203 const protocol_ie_single_container_s<npn_support_info_ext_ies_o>& choice_ext() const
12204 {
12205 assert_choice_type(types::choice_ext, type_, "NPNSupportInfo");
12206 return c.get<protocol_ie_single_container_s<npn_support_info_ext_ies_o>>();
12207 }
12208 fixed_bitstring<44, false, true>& set_sn_pn_info();
12209 protocol_ie_single_container_s<npn_support_info_ext_ies_o>& set_choice_ext();
12210
12211private:
12212 types type_;
12213 choice_buffer_t<fixed_bitstring<44, false, true>, protocol_ie_single_container_s<npn_support_info_ext_ies_o>> c;
12214
12215 void destroy_();
12216};
12217
12218// NSAGSupportList ::= SEQUENCE (SIZE (1..256)) OF NSAGSupportItem
12219using nsag_support_list_l = dyn_array<nsag_support_item_s>;
12220
12221// ExtendedServedPLMNs-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12223 // Extension ::= OPEN TYPE
12224 struct ext_c {
12225 struct types_opts {
12226 enum options { npn_support_info, extended_tai_slice_support_list, tai_nsag_support_list, nulltype } value;
12227
12228 const char* to_string() const;
12229 };
12231
12232 // choice methods
12233 ext_c() = default;
12234 void set(types::options e = types::nulltype);
12235 types type() const { return type_; }
12236 SRSASN_CODE pack(bit_ref& bref) const;
12237 SRSASN_CODE unpack(cbit_ref& bref);
12238 void to_json(json_writer& j) const;
12239 // getters
12240 npn_support_info_c& npn_support_info();
12241 extended_slice_support_list_l& extended_tai_slice_support_list();
12242 nsag_support_list_l& tai_nsag_support_list();
12243 const npn_support_info_c& npn_support_info() const;
12244 const extended_slice_support_list_l& extended_tai_slice_support_list() const;
12245 const nsag_support_list_l& tai_nsag_support_list() const;
12246
12247 private:
12248 types type_;
12250 };
12251
12252 // members lookup methods
12253 static uint32_t idx_to_id(uint32_t idx);
12254 static bool is_id_valid(const uint32_t& id);
12255 static crit_e get_crit(const uint32_t& id);
12256 static ext_c get_ext(const uint32_t& id);
12257 static presence_e get_presence(const uint32_t& id);
12258};
12259
12260// SliceSupportList ::= SEQUENCE (SIZE (1..1024)) OF SliceSupportItem
12261using slice_support_list_l = dyn_array<slice_support_item_s>;
12262
12264 bool npn_support_info_present = false;
12265 bool extended_tai_slice_support_list_present = false;
12266 bool tai_nsag_support_list_present = false;
12267 npn_support_info_c npn_support_info;
12268 extended_slice_support_list_l extended_tai_slice_support_list;
12269 nsag_support_list_l tai_nsag_support_list;
12270
12271 // sequence methods
12272 SRSASN_CODE pack(bit_ref& bref) const;
12273 SRSASN_CODE unpack(cbit_ref& bref);
12274 void to_json(json_writer& j) const;
12275};
12276
12277// ExtendedServedPLMNs-Item ::= SEQUENCE
12279 bool ext = false;
12280 bool ie_exts_present = false;
12282 slice_support_list_l tai_slice_support_list;
12284 // ...
12285
12286 // sequence methods
12287 SRSASN_CODE pack(bit_ref& bref) const;
12288 SRSASN_CODE unpack(cbit_ref& bref);
12289 void to_json(json_writer& j) const;
12290};
12291
12292// ExtendedServedPLMNs-List ::= SEQUENCE (SIZE (1..6)) OF ExtendedServedPLMNs-Item
12294
12295// PRSResource-QCLSourcePRS-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12297
12298// PRSResource-QCLSourceSSB-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12300
12301// NumDLULSymbols-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12303 // Extension ::= OPEN TYPE
12304 struct ext_c {
12305 struct types_opts {
12306 enum options { permutation, nulltype } value;
12307
12308 const char* to_string() const;
12309 };
12311
12312 // choice methods
12313 types type() const { return types::permutation; }
12314 SRSASN_CODE pack(bit_ref& bref) const;
12315 SRSASN_CODE unpack(cbit_ref& bref);
12316 void to_json(json_writer& j) const;
12317 // getters
12318 permutation_e& permutation() { return c; }
12319 const permutation_e& permutation() const { return c; }
12320
12321 private:
12322 permutation_e c;
12323 };
12324
12325 // members lookup methods
12326 static uint32_t idx_to_id(uint32_t idx);
12327 static bool is_id_valid(const uint32_t& id);
12328 static crit_e get_crit(const uint32_t& id);
12329 static ext_c get_ext(const uint32_t& id);
12330 static presence_e get_presence(const uint32_t& id);
12331};
12332
12333// PRSAngleItem-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12335 // Extension ::= OPEN TYPE
12336 struct ext_c {
12337 struct types_opts {
12338 enum options { prs_res_id, nulltype } value;
12339 typedef uint8_t number_type;
12340
12341 const char* to_string() const;
12342 uint8_t to_number() const;
12343 };
12345
12346 // choice methods
12347 types type() const { return types::prs_res_id; }
12348 SRSASN_CODE pack(bit_ref& bref) const;
12349 SRSASN_CODE unpack(cbit_ref& bref);
12350 void to_json(json_writer& j) const;
12351 // getters
12352 uint8_t& prs_res_id() { return c; }
12353 const uint8_t& prs_res_id() const { return c; }
12354
12355 private:
12356 uint8_t c;
12357 };
12358
12359 // members lookup methods
12360 static uint32_t idx_to_id(uint32_t idx);
12361 static bool is_id_valid(const uint32_t& id);
12362 static crit_e get_crit(const uint32_t& id);
12363 static ext_c get_ext(const uint32_t& id);
12364 static presence_e get_presence(const uint32_t& id);
12365};
12366
12367// PRSResource-QCLInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
12368using prs_res_qcl_info_ext_ies_o = protocol_ies_empty_o;
12369
12370using prs_res_qcl_source_prs_ext_ies_container = protocol_ext_container_empty_l;
12371
12372// PRSResource-QCLSourcePRS ::= SEQUENCE
12374 bool qcl_source_prs_res_id_present = false;
12375 bool ie_exts_present = false;
12376 uint8_t qcl_source_prs_res_set_id = 0;
12377 uint8_t qcl_source_prs_res_id = 0;
12379
12380 // sequence methods
12381 SRSASN_CODE pack(bit_ref& bref) const;
12382 SRSASN_CODE unpack(cbit_ref& bref);
12383 void to_json(json_writer& j) const;
12384};
12385
12387
12388// PRSResource-QCLSourceSSB ::= SEQUENCE
12390 bool ext = false;
12391 bool ssb_idx_present = false;
12392 bool ie_exts_present = false;
12393 uint16_t pci_nr = 0;
12394 uint8_t ssb_idx = 0;
12396 // ...
12397
12398 // sequence methods
12399 SRSASN_CODE pack(bit_ref& bref) const;
12400 SRSASN_CODE unpack(cbit_ref& bref);
12401 void to_json(json_writer& j) const;
12402};
12403
12404// NumDLULSymbols ::= SEQUENCE
12406 uint8_t num_dl_symbols = 0;
12407 uint8_t num_ul_symbols = 0;
12409
12410 // sequence methods
12411 SRSASN_CODE pack(bit_ref& bref) const;
12412 SRSASN_CODE unpack(cbit_ref& bref);
12413 void to_json(json_writer& j) const;
12414};
12415
12416// PRSAngleItem ::= SEQUENCE
12418 uint16_t nr_prs_azimuth = 0;
12419 uint8_t nr_prs_azimuth_fine = 0;
12420 uint8_t nr_prs_elevation = 0;
12421 uint8_t nr_prs_elevation_fine = 0;
12423
12424 // sequence methods
12425 SRSASN_CODE pack(bit_ref& bref) const;
12426 SRSASN_CODE unpack(cbit_ref& bref);
12427 void to_json(json_writer& j) const;
12428};
12429
12430// PRSMutingOption1-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12432
12433// PRSMutingOption2-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12435
12436// PRSResource-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12438
12439// PRSResource-QCLInfo ::= CHOICE
12441 struct types_opts {
12442 enum options { qcl_source_ssb, qcl_source_prs, choice_ext, nulltype } value;
12443
12444 const char* to_string() const;
12445 };
12447
12448 // choice methods
12449 prs_res_qcl_info_c() = default;
12451 prs_res_qcl_info_c& operator=(const prs_res_qcl_info_c& other);
12452 ~prs_res_qcl_info_c() { destroy_(); }
12453 void set(types::options e = types::nulltype);
12454 types type() const { return type_; }
12455 SRSASN_CODE pack(bit_ref& bref) const;
12456 SRSASN_CODE unpack(cbit_ref& bref);
12457 void to_json(json_writer& j) const;
12458 // getters
12459 prs_res_qcl_source_ssb_s& qcl_source_ssb()
12460 {
12461 assert_choice_type(types::qcl_source_ssb, type_, "PRSResource-QCLInfo");
12462 return c.get<prs_res_qcl_source_ssb_s>();
12463 }
12464 prs_res_qcl_source_prs_s& qcl_source_prs()
12465 {
12466 assert_choice_type(types::qcl_source_prs, type_, "PRSResource-QCLInfo");
12467 return c.get<prs_res_qcl_source_prs_s>();
12468 }
12469 protocol_ie_single_container_s<prs_res_qcl_info_ext_ies_o>& choice_ext()
12470 {
12471 assert_choice_type(types::choice_ext, type_, "PRSResource-QCLInfo");
12472 return c.get<protocol_ie_single_container_s<prs_res_qcl_info_ext_ies_o>>();
12473 }
12474 const prs_res_qcl_source_ssb_s& qcl_source_ssb() const
12475 {
12476 assert_choice_type(types::qcl_source_ssb, type_, "PRSResource-QCLInfo");
12477 return c.get<prs_res_qcl_source_ssb_s>();
12478 }
12479 const prs_res_qcl_source_prs_s& qcl_source_prs() const
12480 {
12481 assert_choice_type(types::qcl_source_prs, type_, "PRSResource-QCLInfo");
12482 return c.get<prs_res_qcl_source_prs_s>();
12483 }
12484 const protocol_ie_single_container_s<prs_res_qcl_info_ext_ies_o>& choice_ext() const
12485 {
12486 assert_choice_type(types::choice_ext, type_, "PRSResource-QCLInfo");
12487 return c.get<protocol_ie_single_container_s<prs_res_qcl_info_ext_ies_o>>();
12488 }
12489 prs_res_qcl_source_ssb_s& set_qcl_source_ssb();
12490 prs_res_qcl_source_prs_s& set_qcl_source_prs();
12491 protocol_ie_single_container_s<prs_res_qcl_info_ext_ies_o>& set_choice_ext();
12492
12493private:
12494 types type_;
12495 choice_buffer_t<protocol_ie_single_container_s<prs_res_qcl_info_ext_ies_o>,
12496 prs_res_qcl_source_prs_s,
12497 prs_res_qcl_source_ssb_s>
12498 c;
12499
12500 void destroy_();
12501};
12502
12503// SymbolAllocInSlot-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
12504using symbol_alloc_in_slot_ext_ies_o = protocol_ies_empty_o;
12505
12506// LCStoGCSTranslation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12507using lc_sto_gcs_translation_ext_ies_o = protocol_ext_empty_o;
12508
12509// NR-PRSBeamInformationItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12510using nr_prs_beam_info_item_ext_ies_o = protocol_ext_empty_o;
12511
12512// PRSAngleList ::= SEQUENCE (SIZE (1..64)) OF PRSAngleItem
12513using prs_angle_list_l = dyn_array<prs_angle_item_s>;
12514
12515// PRSMuting-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12516using prs_muting_ext_ies_o = protocol_ext_empty_o;
12517
12518using prs_muting_option1_ext_ies_container = protocol_ext_container_empty_l;
12519
12520// PRSMutingOption1 ::= SEQUENCE
12523 enum options { rf1, rf2, rf4, rf8, /*...*/ nulltype } value;
12524 typedef uint8_t number_type;
12525
12526 const char* to_string() const;
12527 uint8_t to_number() const;
12528 };
12530
12531 // member variables
12532 bool ie_exts_present = false;
12533 dl_prs_muting_pattern_c muting_pattern;
12534 muting_bit_repeat_factor_e_ muting_bit_repeat_factor;
12536
12537 // sequence methods
12538 SRSASN_CODE pack(bit_ref& bref) const;
12539 SRSASN_CODE unpack(cbit_ref& bref);
12540 void to_json(json_writer& j) const;
12541};
12542
12544
12545// PRSMutingOption2 ::= SEQUENCE
12547 bool ie_exts_present = false;
12548 dl_prs_muting_pattern_c muting_pattern;
12550
12551 // sequence methods
12552 SRSASN_CODE pack(bit_ref& bref) const;
12553 SRSASN_CODE unpack(cbit_ref& bref);
12554 void to_json(json_writer& j) const;
12555};
12556
12558
12559// PRSResource-Item ::= SEQUENCE
12561 bool qcl_info_present = false;
12562 bool ie_exts_present = false;
12563 uint8_t prs_res_id = 0;
12564 uint16_t seq_id = 0;
12565 uint8_t re_offset = 0;
12566 uint16_t res_slot_offset = 0;
12567 uint8_t res_symbol_offset = 0;
12568 prs_res_qcl_info_c qcl_info;
12570
12571 // sequence methods
12572 SRSASN_CODE pack(bit_ref& bref) const;
12573 SRSASN_CODE unpack(cbit_ref& bref);
12574 void to_json(json_writer& j) const;
12575};
12576
12577// RxTxTimingErrorMargin ::= ENUMERATED
12579 enum options {
12580 tc0dot5,
12581 tc1,
12582 tc2,
12583 tc4,
12584 tc8,
12585 tc12,
12586 tc16,
12587 tc20,
12588 tc24,
12589 tc32,
12590 tc40,
12591 tc48,
12592 tc64,
12593 tc80,
12594 tc96,
12595 tc128,
12596 // ...
12597 nulltype
12598 } value;
12599 typedef float number_type;
12600
12601 const char* to_string() const;
12602 float to_number() const;
12603 const char* to_number_string() const;
12604};
12606
12607// SSB-TF-Configuration-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12609
12610// Slot-Configuration-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12612
12613// SymbolAllocInSlot ::= CHOICE
12615 struct types_opts {
12616 enum options { all_dl, all_ul, both_dl_and_ul, choice_ext, nulltype } value;
12617
12618 const char* to_string() const;
12619 };
12621
12622 // choice methods
12623 symbol_alloc_in_slot_c() = default;
12625 symbol_alloc_in_slot_c& operator=(const symbol_alloc_in_slot_c& other);
12626 ~symbol_alloc_in_slot_c() { destroy_(); }
12627 void set(types::options e = types::nulltype);
12628 types type() const { return type_; }
12629 SRSASN_CODE pack(bit_ref& bref) const;
12630 SRSASN_CODE unpack(cbit_ref& bref);
12631 void to_json(json_writer& j) const;
12632 // getters
12633 num_dl_ul_symbols_s& both_dl_and_ul()
12634 {
12635 assert_choice_type(types::both_dl_and_ul, type_, "SymbolAllocInSlot");
12636 return c.get<num_dl_ul_symbols_s>();
12637 }
12638 protocol_ie_single_container_s<symbol_alloc_in_slot_ext_ies_o>& choice_ext()
12639 {
12640 assert_choice_type(types::choice_ext, type_, "SymbolAllocInSlot");
12641 return c.get<protocol_ie_single_container_s<symbol_alloc_in_slot_ext_ies_o>>();
12642 }
12643 const num_dl_ul_symbols_s& both_dl_and_ul() const
12644 {
12645 assert_choice_type(types::both_dl_and_ul, type_, "SymbolAllocInSlot");
12646 return c.get<num_dl_ul_symbols_s>();
12647 }
12648 const protocol_ie_single_container_s<symbol_alloc_in_slot_ext_ies_o>& choice_ext() const
12649 {
12650 assert_choice_type(types::choice_ext, type_, "SymbolAllocInSlot");
12651 return c.get<protocol_ie_single_container_s<symbol_alloc_in_slot_ext_ies_o>>();
12652 }
12653 void set_all_dl();
12654 void set_all_ul();
12655 num_dl_ul_symbols_s& set_both_dl_and_ul();
12656 protocol_ie_single_container_s<symbol_alloc_in_slot_ext_ies_o>& set_choice_ext();
12657
12658private:
12659 types type_;
12660 choice_buffer_t<num_dl_ul_symbols_s, protocol_ie_single_container_s<symbol_alloc_in_slot_ext_ies_o>> c;
12661
12662 void destroy_();
12663};
12664
12665// TRP-Rx-TEGInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12666using trp_rx_teg_info_ext_ies_o = protocol_ext_empty_o;
12667
12668// TRP-RxTx-TEGInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12669using trp_rx_tx_teg_info_ext_ies_o = protocol_ext_empty_o;
12670
12671// TRP-Tx-TEGInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12672using trp_tx_teg_info_ext_ies_o = protocol_ext_empty_o;
12673
12674// TimingErrorMargin ::= ENUMERATED
12676 enum options {
12677 m0_tc,
12678 m2_tc,
12679 m4_tc,
12680 m6_tc,
12681 m8_tc,
12682 m12_tc,
12683 m16_tc,
12684 m20_tc,
12685 m24_tc,
12686 m32_tc,
12687 m40_tc,
12688 m48_tc,
12689 m56_tc,
12690 m64_tc,
12691 m72_tc,
12692 m80_tc,
12693 // ...
12694 nulltype
12695 } value;
12696 typedef uint8_t number_type;
12697
12698 const char* to_string() const;
12699 uint8_t to_number() const;
12700};
12702
12704
12705// LCStoGCSTranslation ::= SEQUENCE
12707 bool alpha_fine_present = false;
12708 bool beta_fine_present = false;
12709 bool gamma_fine_present = false;
12710 bool ie_exts_present = false;
12711 uint16_t alpha = 0;
12712 uint8_t alpha_fine = 0;
12713 uint16_t beta = 0;
12714 uint8_t beta_fine = 0;
12715 uint16_t gamma = 0;
12716 uint8_t gamma_fine = 0;
12718
12719 // sequence methods
12720 SRSASN_CODE pack(bit_ref& bref) const;
12721 SRSASN_CODE unpack(cbit_ref& bref);
12722 void to_json(json_writer& j) const;
12723};
12724
12726
12727// NR-PRSBeamInformationItem ::= SEQUENCE
12729 bool ie_exts_present = false;
12730 uint8_t prs_res_set_id = 0;
12731 prs_angle_list_l prs_angle_list;
12733
12734 // sequence methods
12735 SRSASN_CODE pack(bit_ref& bref) const;
12736 SRSASN_CODE unpack(cbit_ref& bref);
12737 void to_json(json_writer& j) const;
12738};
12739
12741
12742// PRSMuting ::= SEQUENCE
12744 bool prs_muting_option1_present = false;
12745 bool prs_muting_option2_present = false;
12746 bool ie_exts_present = false;
12747 prs_muting_option1_s prs_muting_option1;
12748 prs_muting_option2_s prs_muting_option2;
12750
12751 // sequence methods
12752 SRSASN_CODE pack(bit_ref& bref) const;
12753 SRSASN_CODE unpack(cbit_ref& bref);
12754 void to_json(json_writer& j) const;
12755};
12756
12757// PRSResource-List ::= SEQUENCE (SIZE (1..64)) OF PRSResource-Item
12759
12760// PRSResourceSet-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12762
12763// RxTEG-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12765
12766// RxTxTEG-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12768
12770
12771// SSB-TF-Configuration ::= SEQUENCE
12774 enum options { khz15, khz30, khz60, khz120, khz240, /*...*/ nulltype } value;
12775 typedef uint8_t number_type;
12776
12777 const char* to_string() const;
12778 uint8_t to_number() const;
12779 };
12782 enum options { ms5, ms10, ms20, ms40, ms80, ms160, /*...*/ nulltype } value;
12783 typedef uint8_t number_type;
12784
12785 const char* to_string() const;
12786 uint8_t to_number() const;
12787 };
12789
12790 // member variables
12791 bool ssb_position_in_burst_present = false;
12792 bool sfn_initisation_time_present = false;
12793 bool ie_exts_present = false;
12794 uint32_t ssb_freq = 0;
12795 ssb_subcarrier_spacing_e_ ssb_subcarrier_spacing;
12796 int8_t ssb_tx_pwr = -60;
12797 ssb_periodicity_e_ ssb_periodicity;
12798 uint8_t ssb_half_frame_offset = 0;
12799 uint8_t ssb_sfn_offset = 0;
12800 ssb_positions_in_burst_c ssb_position_in_burst;
12801 fixed_bitstring<64, false, true> sfn_initisation_time;
12803
12804 // sequence methods
12805 SRSASN_CODE pack(bit_ref& bref) const;
12806 SRSASN_CODE unpack(cbit_ref& bref);
12807 void to_json(json_writer& j) const;
12808};
12809
12810// SSBInformationItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12812
12814
12815// Slot-Configuration-Item ::= SEQUENCE
12817 bool ie_exts_present = false;
12818 uint16_t slot_idx = 0;
12819 symbol_alloc_in_slot_c symbol_alloc_in_slot;
12821
12822 // sequence methods
12823 SRSASN_CODE pack(bit_ref& bref) const;
12824 SRSASN_CODE unpack(cbit_ref& bref);
12825 void to_json(json_writer& j) const;
12826};
12827
12829
12830// TRP-Rx-TEGInformation ::= SEQUENCE
12832 bool ext = false;
12833 bool ie_exts_present = false;
12834 uint8_t trp_rx_teg_id = 0;
12835 timing_error_margin_e trp_rx_timing_error_margin;
12837 // ...
12838
12839 // sequence methods
12840 SRSASN_CODE pack(bit_ref& bref) const;
12841 SRSASN_CODE unpack(cbit_ref& bref);
12842 void to_json(json_writer& j) const;
12843};
12844
12846
12847// TRP-RxTx-TEGInformation ::= SEQUENCE
12849 bool ext = false;
12850 bool ie_exts_present = false;
12851 uint16_t trp_rx_tx_teg_id = 0;
12852 rx_tx_timing_error_margin_e trp_rx_tx_timing_error_margin;
12854 // ...
12855
12856 // sequence methods
12857 SRSASN_CODE pack(bit_ref& bref) const;
12858 SRSASN_CODE unpack(cbit_ref& bref);
12859 void to_json(json_writer& j) const;
12860};
12861
12863
12864// TRP-Tx-TEGInformation ::= SEQUENCE
12866 bool ext = false;
12867 bool ie_exts_present = false;
12868 uint8_t trp_tx_teg_id = 0;
12869 timing_error_margin_e trp_tx_timing_error_margin;
12871 // ...
12872
12873 // sequence methods
12874 SRSASN_CODE pack(bit_ref& bref) const;
12875 SRSASN_CODE unpack(cbit_ref& bref);
12876 void to_json(json_writer& j) const;
12877};
12878
12879// TRPTEGItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12881
12882// IntendedTDD-DL-ULConfig-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12884
12885// LCStoGCSTranslationList ::= SEQUENCE (SIZE (1..3)) OF LCStoGCSTranslation
12887
12888// NR-PRSBeamInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12890
12891// NR-PRSBeamInformationList ::= SEQUENCE (SIZE (1..2)) OF NR-PRSBeamInformationItem
12893
12894// NR-U-Channel-Info-List-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12896
12897// OnDemandPRS-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
12899
12901
12902// PRSResourceSet-Item ::= SEQUENCE
12905 enum options { khz15, khz30, khz60, khz120, /*...*/ nulltype } value;
12906 typedef uint8_t number_type;
12907
12908 const char* to_string() const;
12909 uint8_t to_number() const;
12910 };
12913 enum options { n2, n4, n6, n12, /*...*/ nulltype } value;
12914 typedef uint8_t number_type;
12915
12916 const char* to_string() const;
12917 uint8_t to_number() const;
12918 };
12921 enum options { normal, extended, /*...*/ nulltype } value;
12922
12923 const char* to_string() const;
12924 };
12927 enum options {
12928 n4,
12929 n5,
12930 n8,
12931 n10,
12932 n16,
12933 n20,
12934 n32,
12935 n40,
12936 n64,
12937 n80,
12938 n160,
12939 n320,
12940 n640,
12941 n1280,
12942 n2560,
12943 n5120,
12944 n10240,
12945 n20480,
12946 n40960,
12947 n81920,
12948 // ...
12949 nulltype
12950 } value;
12951 typedef uint32_t number_type;
12952
12953 const char* to_string() const;
12954 uint32_t to_number() const;
12955 };
12958 enum options { rf1, rf2, rf4, rf6, rf8, rf16, rf32, /*...*/ nulltype } value;
12959 typedef uint8_t number_type;
12960
12961 const char* to_string() const;
12962 uint8_t to_number() const;
12963 };
12966 enum options { tg1, tg2, tg4, tg8, tg16, tg32, /*...*/ nulltype } value;
12967 typedef uint8_t number_type;
12968
12969 const char* to_string() const;
12970 uint8_t to_number() const;
12971 };
12974 enum options { n2, n4, n6, n12, /*...*/ nulltype } value;
12975 typedef uint8_t number_type;
12976
12977 const char* to_string() const;
12978 uint8_t to_number() const;
12979 };
12981
12982 // member variables
12983 bool prs_muting_present = false;
12984 bool ie_exts_present = false;
12985 uint8_t prs_res_set_id = 0;
12986 subcarrier_spacing_e_ subcarrier_spacing;
12987 uint8_t pr_sbw = 1;
12988 uint16_t start_prb = 0;
12989 uint32_t point_a = 0;
12990 comb_size_e_ comb_size;
12991 cp_type_e_ cp_type;
12992 res_set_periodicity_e_ res_set_periodicity;
12993 uint32_t res_set_slot_offset = 0;
12994 res_repeat_factor_e_ res_repeat_factor;
12995 res_time_gap_e_ res_time_gap;
12996 res_numof_symbols_e_ res_numof_symbols;
12997 prs_muting_s prs_muting;
12998 int8_t prs_res_tx_pwr = -60;
12999 prs_res_list_l prs_res_list;
13001
13002 // sequence methods
13003 SRSASN_CODE pack(bit_ref& bref) const;
13004 SRSASN_CODE unpack(cbit_ref& bref);
13005 void to_json(json_writer& j) const;
13006};
13007
13008// ReferenceSignal-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
13010
13012
13013// RxTEG ::= SEQUENCE
13014struct rx_teg_s {
13015 bool ext = false;
13016 bool ie_exts_present = false;
13017 trp_rx_teg_info_s trp_rx_teg_info;
13018 trp_tx_teg_info_s trp_tx_teg_info;
13020 // ...
13021
13022 // sequence methods
13023 SRSASN_CODE pack(bit_ref& bref) const;
13024 SRSASN_CODE unpack(cbit_ref& bref);
13025 void to_json(json_writer& j) const;
13026};
13027
13029
13030// RxTxTEG ::= SEQUENCE
13032 bool ext = false;
13033 bool trp_tx_teg_info_present = false;
13034 bool ie_exts_present = false;
13035 trp_rx_tx_teg_info_s trp_rx_tx_teg_info;
13036 trp_tx_teg_info_s trp_tx_teg_info;
13038 // ...
13039
13040 // sequence methods
13041 SRSASN_CODE pack(bit_ref& bref) const;
13042 SRSASN_CODE unpack(cbit_ref& bref);
13043 void to_json(json_writer& j) const;
13044};
13045
13047
13048// SSBInformationItem ::= SEQUENCE
13050 bool ie_exts_present = false;
13051 ssb_tf_cfg_s ssb_cfg;
13052 uint16_t pci_nr = 0;
13054
13055 // sequence methods
13056 SRSASN_CODE pack(bit_ref& bref) const;
13057 SRSASN_CODE unpack(cbit_ref& bref);
13058 void to_json(json_writer& j) const;
13059};
13060
13061// Slot-Configuration-List ::= SEQUENCE (SIZE (1..5120)) OF Slot-Configuration-Item
13063
13064// TRPBeamAntennaInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13066
13068
13069// TRPTEG-Item ::= SEQUENCE
13072
13073 // member variables
13074 bool ext = false;
13075 bool ie_exts_present = false;
13076 trp_tx_teg_info_s trp_tx_teg_info;
13077 uint8_t dl_prs_res_set_id = 0;
13078 dl_prs_res_id_list_l_ dl_prs_res_id_list;
13080 // ...
13081
13082 // sequence methods
13083 SRSASN_CODE pack(bit_ref& bref) const;
13084 SRSASN_CODE unpack(cbit_ref& bref);
13085 void to_json(json_writer& j) const;
13086};
13087
13088// TRPTEGInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
13090
13091// GNBRxTxTimeDiffMeas-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
13093
13095
13096// IntendedTDD-DL-ULConfig ::= SEQUENCE
13099 enum options { scs15, scs30, scs60, scs120, /*...*/ scs480, scs960, nulltype } value;
13100 typedef uint16_t number_type;
13101
13102 const char* to_string() const;
13103 uint16_t to_number() const;
13104 };
13106 struct nr_cp_opts {
13107 enum options { normal, extended, /*...*/ nulltype } value;
13108
13109 const char* to_string() const;
13110 };
13113 enum options {
13114 ms0p5,
13115 ms0p625,
13116 ms1,
13117 ms1p25,
13118 ms2,
13119 ms2p5,
13120 ms3,
13121 ms4,
13122 ms5,
13123 ms10,
13124 ms20,
13125 ms40,
13126 ms60,
13127 ms80,
13128 ms100,
13129 ms120,
13130 ms140,
13131 ms160,
13132 // ...
13133 nulltype
13134 } value;
13135
13136 const char* to_string() const;
13137 };
13139
13140 // member variables
13141 bool ie_exts_present = false;
13142 nr_scs_e_ nr_scs;
13143 nr_cp_e_ nr_cp;
13144 nr_dl_ul_tx_periodicity_e_ nr_dl_ul_tx_periodicity;
13145 slot_cfg_list_l slot_cfg_list;
13147
13148 // sequence methods
13149 SRSASN_CODE pack(bit_ref& bref) const;
13150 SRSASN_CODE unpack(cbit_ref& bref);
13151 void to_json(json_writer& j) const;
13152};
13153
13155
13156// NR-PRSBeamInformation ::= SEQUENCE
13158 bool ie_exts_present = false;
13159 nr_prs_beam_info_list_l nr_prs_beam_info_list;
13160 lc_sto_gcs_translation_list_l lc_sto_gcs_translation_list;
13162
13163 // sequence methods
13164 SRSASN_CODE pack(bit_ref& bref) const;
13165 SRSASN_CODE unpack(cbit_ref& bref);
13166 void to_json(json_writer& j) const;
13167};
13168
13170
13171// NR-U-Channel-Info-Item ::= SEQUENCE
13173 struct bw_opts {
13174 enum options { mhz_neg10, mhz_neg20, mhz_neg40, mhz_neg60, mhz_neg80, /*...*/ nulltype } value;
13175 typedef int8_t number_type;
13176
13177 const char* to_string() const;
13178 int8_t to_number() const;
13179 };
13181
13182 // member variables
13183 bool ext = false;
13184 bool ie_exts_present = false;
13185 uint8_t nr_u_ch_id = 1;
13186 uint32_t nr_arfcn = 0;
13187 bw_e_ bw;
13189 // ...
13190
13191 // sequence methods
13192 SRSASN_CODE pack(bit_ref& bref) const;
13193 SRSASN_CODE unpack(cbit_ref& bref);
13194 void to_json(json_writer& j) const;
13195};
13196
13197// NonDynamicPQIDescriptor-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13199
13201
13202// OnDemandPRS-Info ::= SEQUENCE
13204 bool ext = false;
13205 bool allowed_res_set_periodicity_values_present = false;
13206 bool allowed_prs_bw_values_present = false;
13207 bool allowed_res_repeat_factor_values_present = false;
13208 bool allowed_res_nof_symbols_values_present = false;
13209 bool allowed_comb_size_values_present = false;
13210 bool ie_exts_present = false;
13211 fixed_bitstring<16, false, true> on_demand_prs_request_allowed;
13212 fixed_bitstring<24, false, true> allowed_res_set_periodicity_values;
13213 fixed_bitstring<64, false, true> allowed_prs_bw_values;
13214 fixed_bitstring<8, false, true> allowed_res_repeat_factor_values;
13215 fixed_bitstring<8, false, true> allowed_res_nof_symbols_values;
13216 fixed_bitstring<8, false, true> allowed_comb_size_values;
13218 // ...
13219
13220 // sequence methods
13221 SRSASN_CODE pack(bit_ref& bref) const;
13222 SRSASN_CODE unpack(cbit_ref& bref);
13223 void to_json(json_writer& j) const;
13224};
13225
13226// PRSConfiguration-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13228
13229// PRSResourceSet-List ::= SEQUENCE (SIZE (1..8)) OF PRSResourceSet-Item
13231
13232// PRSTransmissionOffIndicationPerResource-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13234
13235// PosSRSInfo ::= SEQUENCE
13237 bool ext = false;
13238 uint8_t pos_srs_res_id = 0;
13239 // ...
13240
13241 // sequence methods
13242 SRSASN_CODE pack(bit_ref& bref) const;
13243 SRSASN_CODE unpack(cbit_ref& bref);
13244 void to_json(json_writer& j) const;
13245};
13246
13247// ReferenceSignal ::= CHOICE
13249 struct types_opts {
13250 enum options { nzp_csi_rs, ssb, srs, positioning_srs, dl_prs, choice_ext, nulltype } value;
13251
13252 const char* to_string() const;
13253 };
13255
13256 // choice methods
13257 ref_sig_c() = default;
13258 ref_sig_c(const ref_sig_c& other);
13259 ref_sig_c& operator=(const ref_sig_c& other);
13260 ~ref_sig_c() { destroy_(); }
13261 void set(types::options e = types::nulltype);
13262 types type() const { return type_; }
13263 SRSASN_CODE pack(bit_ref& bref) const;
13264 SRSASN_CODE unpack(cbit_ref& bref);
13265 void to_json(json_writer& j) const;
13266 // getters
13267 uint8_t& nzp_csi_rs()
13268 {
13269 assert_choice_type(types::nzp_csi_rs, type_, "ReferenceSignal");
13270 return c.get<uint8_t>();
13271 }
13272 ssb_s& ssb()
13273 {
13274 assert_choice_type(types::ssb, type_, "ReferenceSignal");
13275 return c.get<ssb_s>();
13276 }
13277 uint8_t& srs()
13278 {
13279 assert_choice_type(types::srs, type_, "ReferenceSignal");
13280 return c.get<uint8_t>();
13281 }
13282 uint8_t& positioning_srs()
13283 {
13284 assert_choice_type(types::positioning_srs, type_, "ReferenceSignal");
13285 return c.get<uint8_t>();
13286 }
13287 dl_prs_s& dl_prs()
13288 {
13289 assert_choice_type(types::dl_prs, type_, "ReferenceSignal");
13290 return c.get<dl_prs_s>();
13291 }
13292 protocol_ie_single_container_s<ref_sig_ext_ies_o>& choice_ext()
13293 {
13294 assert_choice_type(types::choice_ext, type_, "ReferenceSignal");
13295 return c.get<protocol_ie_single_container_s<ref_sig_ext_ies_o>>();
13296 }
13297 const uint8_t& nzp_csi_rs() const
13298 {
13299 assert_choice_type(types::nzp_csi_rs, type_, "ReferenceSignal");
13300 return c.get<uint8_t>();
13301 }
13302 const ssb_s& ssb() const
13303 {
13304 assert_choice_type(types::ssb, type_, "ReferenceSignal");
13305 return c.get<ssb_s>();
13306 }
13307 const uint8_t& srs() const
13308 {
13309 assert_choice_type(types::srs, type_, "ReferenceSignal");
13310 return c.get<uint8_t>();
13311 }
13312 const uint8_t& positioning_srs() const
13313 {
13314 assert_choice_type(types::positioning_srs, type_, "ReferenceSignal");
13315 return c.get<uint8_t>();
13316 }
13317 const dl_prs_s& dl_prs() const
13318 {
13319 assert_choice_type(types::dl_prs, type_, "ReferenceSignal");
13320 return c.get<dl_prs_s>();
13321 }
13322 const protocol_ie_single_container_s<ref_sig_ext_ies_o>& choice_ext() const
13323 {
13324 assert_choice_type(types::choice_ext, type_, "ReferenceSignal");
13325 return c.get<protocol_ie_single_container_s<ref_sig_ext_ies_o>>();
13326 }
13327 uint8_t& set_nzp_csi_rs();
13328 ssb_s& set_ssb();
13329 uint8_t& set_srs();
13330 uint8_t& set_positioning_srs();
13331 dl_prs_s& set_dl_prs();
13332 protocol_ie_single_container_s<ref_sig_ext_ies_o>& set_choice_ext();
13333
13334private:
13335 types type_;
13336 choice_buffer_t<dl_prs_s, protocol_ie_single_container_s<ref_sig_ext_ies_o>, ssb_s> c;
13337
13338 void destroy_();
13339};
13340
13341// RequestedDLPRSResource-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13342using requested_dl_prs_res_item_ext_ies_o = protocol_ext_empty_o;
13343
13344// SRSInfo ::= SEQUENCE
13346 bool ext = false;
13347 uint8_t srs_res = 0;
13348 // ...
13349
13350 // sequence methods
13351 SRSASN_CODE pack(bit_ref& bref) const;
13352 SRSASN_CODE unpack(cbit_ref& bref);
13353 void to_json(json_writer& j) const;
13354};
13355
13356// SRSPortIndex ::= ENUMERATED
13358 enum options { id1000, id1001, id1002, id1003, /*...*/ nulltype } value;
13359 typedef uint16_t number_type;
13360
13361 const char* to_string() const;
13362 uint16_t to_number() const;
13363};
13365
13366// SRSResourceTypeChoice-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
13368
13369// SSBInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13371
13372// SSBInformationList ::= SEQUENCE (SIZE (1..255)) OF SSBInformationItem
13374
13375// SpatialDirectionInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13377
13378// SpatialRelationPerSRSResourceItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13380
13382
13383// TRPBeamAntennaInformation ::= SEQUENCE
13385 bool ext = false;
13386 bool ie_exts_present = false;
13387 choice_trp_beam_ant_info_item_c choice_trp_beam_ant_info_item;
13389 // ...
13390
13391 // sequence methods
13392 SRSASN_CODE pack(bit_ref& bref) const;
13393 SRSASN_CODE unpack(cbit_ref& bref);
13394 void to_json(json_writer& j) const;
13395};
13396
13397// TRPTEGInformation ::= CHOICE
13399 struct types_opts {
13400 enum options { rx_tx_teg, rx_teg, choice_ext, nulltype } value;
13401
13402 const char* to_string() const;
13403 };
13405
13406 // choice methods
13407 trpteg_info_c() = default;
13408 trpteg_info_c(const trpteg_info_c& other);
13409 trpteg_info_c& operator=(const trpteg_info_c& other);
13410 ~trpteg_info_c() { destroy_(); }
13411 void set(types::options e = types::nulltype);
13412 types type() const { return type_; }
13413 SRSASN_CODE pack(bit_ref& bref) const;
13414 SRSASN_CODE unpack(cbit_ref& bref);
13415 void to_json(json_writer& j) const;
13416 // getters
13417 rx_tx_teg_s& rx_tx_teg()
13418 {
13419 assert_choice_type(types::rx_tx_teg, type_, "TRPTEGInformation");
13420 return c.get<rx_tx_teg_s>();
13421 }
13422 rx_teg_s& rx_teg()
13423 {
13424 assert_choice_type(types::rx_teg, type_, "TRPTEGInformation");
13425 return c.get<rx_teg_s>();
13426 }
13427 protocol_ie_single_container_s<trpteg_info_ext_ies_o>& choice_ext()
13428 {
13429 assert_choice_type(types::choice_ext, type_, "TRPTEGInformation");
13430 return c.get<protocol_ie_single_container_s<trpteg_info_ext_ies_o>>();
13431 }
13432 const rx_tx_teg_s& rx_tx_teg() const
13433 {
13434 assert_choice_type(types::rx_tx_teg, type_, "TRPTEGInformation");
13435 return c.get<rx_tx_teg_s>();
13436 }
13437 const rx_teg_s& rx_teg() const
13438 {
13439 assert_choice_type(types::rx_teg, type_, "TRPTEGInformation");
13440 return c.get<rx_teg_s>();
13441 }
13442 const protocol_ie_single_container_s<trpteg_info_ext_ies_o>& choice_ext() const
13443 {
13444 assert_choice_type(types::choice_ext, type_, "TRPTEGInformation");
13445 return c.get<protocol_ie_single_container_s<trpteg_info_ext_ies_o>>();
13446 }
13447 rx_tx_teg_s& set_rx_tx_teg();
13448 rx_teg_s& set_rx_teg();
13449 protocol_ie_single_container_s<trpteg_info_ext_ies_o>& set_choice_ext();
13450
13451private:
13452 types type_;
13453 choice_buffer_t<protocol_ie_single_container_s<trpteg_info_ext_ies_o>, rx_teg_s, rx_tx_teg_s> c;
13454
13455 void destroy_();
13456};
13457
13458// TRPTxTEGAssociation ::= SEQUENCE (SIZE (1..8)) OF TRPTEG-Item
13459using trp_tx_teg_assoc_l = dyn_array<trpteg_item_s>;
13460
13461// TRPType ::= ENUMERATED
13463 enum options { prs_only_tp, srs_only_rp, tp, rp, trp, /*...*/ nulltype } value;
13464
13465 const char* to_string() const;
13466};
13468
13469// UACOperatorDefined-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13471
13472// UL-RTOA-MeasurementItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
13474
13475// FDD-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13477 // Extension ::= OPEN TYPE
13478 struct ext_c {
13479 struct types_opts {
13480 enum options { ul_carrier_list, dl_carrier_list, nulltype } value;
13481
13482 const char* to_string() const;
13483 };
13485
13486 // choice methods
13487 ext_c() = default;
13488 void set(types::options e = types::nulltype);
13489 types type() const { return type_; }
13490 SRSASN_CODE pack(bit_ref& bref) const;
13491 SRSASN_CODE unpack(cbit_ref& bref);
13492 void to_json(json_writer& j) const;
13493 // getters
13494 nr_carrier_list_l& ul_carrier_list();
13495 nr_carrier_list_l& dl_carrier_list();
13496 const nr_carrier_list_l& ul_carrier_list() const;
13497 const nr_carrier_list_l& dl_carrier_list() const;
13498
13499 private:
13500 types type_;
13502 };
13503
13504 // members lookup methods
13505 static uint32_t idx_to_id(uint32_t idx);
13506 static bool is_id_valid(const uint32_t& id);
13507 static crit_e get_crit(const uint32_t& id);
13508 static ext_c get_ext(const uint32_t& id);
13509 static presence_e get_presence(const uint32_t& id);
13510};
13511
13512// FlowsMappedToSLDRB-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13513using flows_mapped_to_sl_drb_item_ext_ies_o = protocol_ext_empty_o;
13514
13515// GNB-RxTxTimeDiff-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13517 // Extension ::= OPEN TYPE
13518 struct ext_c {
13519 struct types_opts {
13520 enum options { extended_add_path_list, trpteg_info, nulltype } value;
13521
13522 const char* to_string() const;
13523 };
13525
13526 // choice methods
13527 ext_c() = default;
13528 void set(types::options e = types::nulltype);
13529 types type() const { return type_; }
13530 SRSASN_CODE pack(bit_ref& bref) const;
13531 SRSASN_CODE unpack(cbit_ref& bref);
13532 void to_json(json_writer& j) const;
13533 // getters
13534 extended_add_path_list_l& extended_add_path_list();
13535 trpteg_info_c& trpteg_info();
13536 const extended_add_path_list_l& extended_add_path_list() const;
13537 const trpteg_info_c& trpteg_info() const;
13538
13539 private:
13540 types type_;
13542 };
13543
13544 // members lookup methods
13545 static uint32_t idx_to_id(uint32_t idx);
13546 static bool is_id_valid(const uint32_t& id);
13547 static crit_e get_crit(const uint32_t& id);
13548 static ext_c get_ext(const uint32_t& id);
13549 static presence_e get_presence(const uint32_t& id);
13550};
13551
13552// GNBRxTxTimeDiffMeas ::= CHOICE
13554 struct types_opts {
13555 enum options { k0, k1, k2, k3, k4, k5, choice_ext, nulltype } value;
13556 typedef uint8_t number_type;
13557
13558 const char* to_string() const;
13559 uint8_t to_number() const;
13560 };
13562
13563 // choice methods
13564 gnb_rx_tx_time_diff_meas_c() = default;
13567 ~gnb_rx_tx_time_diff_meas_c() { destroy_(); }
13568 void set(types::options e = types::nulltype);
13569 types type() const { return type_; }
13570 SRSASN_CODE pack(bit_ref& bref) const;
13571 SRSASN_CODE unpack(cbit_ref& bref);
13572 void to_json(json_writer& j) const;
13573 // getters
13574 uint32_t& k0()
13575 {
13576 assert_choice_type(types::k0, type_, "GNBRxTxTimeDiffMeas");
13577 return c.get<uint32_t>();
13578 }
13579 uint32_t& k1()
13580 {
13581 assert_choice_type(types::k1, type_, "GNBRxTxTimeDiffMeas");
13582 return c.get<uint32_t>();
13583 }
13584 uint32_t& k2()
13585 {
13586 assert_choice_type(types::k2, type_, "GNBRxTxTimeDiffMeas");
13587 return c.get<uint32_t>();
13588 }
13589 uint32_t& k3()
13590 {
13591 assert_choice_type(types::k3, type_, "GNBRxTxTimeDiffMeas");
13592 return c.get<uint32_t>();
13593 }
13594 uint32_t& k4()
13595 {
13596 assert_choice_type(types::k4, type_, "GNBRxTxTimeDiffMeas");
13597 return c.get<uint32_t>();
13598 }
13599 uint16_t& k5()
13600 {
13601 assert_choice_type(types::k5, type_, "GNBRxTxTimeDiffMeas");
13602 return c.get<uint16_t>();
13603 }
13604 protocol_ie_single_container_s<gnb_rx_tx_time_diff_meas_ext_ies_o>& choice_ext()
13605 {
13606 assert_choice_type(types::choice_ext, type_, "GNBRxTxTimeDiffMeas");
13607 return c.get<protocol_ie_single_container_s<gnb_rx_tx_time_diff_meas_ext_ies_o>>();
13608 }
13609 const uint32_t& k0() const
13610 {
13611 assert_choice_type(types::k0, type_, "GNBRxTxTimeDiffMeas");
13612 return c.get<uint32_t>();
13613 }
13614 const uint32_t& k1() const
13615 {
13616 assert_choice_type(types::k1, type_, "GNBRxTxTimeDiffMeas");
13617 return c.get<uint32_t>();
13618 }
13619 const uint32_t& k2() const
13620 {
13621 assert_choice_type(types::k2, type_, "GNBRxTxTimeDiffMeas");
13622 return c.get<uint32_t>();
13623 }
13624 const uint32_t& k3() const
13625 {
13626 assert_choice_type(types::k3, type_, "GNBRxTxTimeDiffMeas");
13627 return c.get<uint32_t>();
13628 }
13629 const uint32_t& k4() const
13630 {
13631 assert_choice_type(types::k4, type_, "GNBRxTxTimeDiffMeas");
13632 return c.get<uint32_t>();
13633 }
13634 const uint16_t& k5() const
13635 {
13636 assert_choice_type(types::k5, type_, "GNBRxTxTimeDiffMeas");
13637 return c.get<uint16_t>();
13638 }
13639 const protocol_ie_single_container_s<gnb_rx_tx_time_diff_meas_ext_ies_o>& choice_ext() const
13640 {
13641 assert_choice_type(types::choice_ext, type_, "GNBRxTxTimeDiffMeas");
13642 return c.get<protocol_ie_single_container_s<gnb_rx_tx_time_diff_meas_ext_ies_o>>();
13643 }
13644 uint32_t& set_k0();
13645 uint32_t& set_k1();
13646 uint32_t& set_k2();
13647 uint32_t& set_k3();
13648 uint32_t& set_k4();
13649 uint16_t& set_k5();
13650 protocol_ie_single_container_s<gnb_rx_tx_time_diff_meas_ext_ies_o>& set_choice_ext();
13651
13652private:
13653 types type_;
13654 choice_buffer_t<protocol_ie_single_container_s<gnb_rx_tx_time_diff_meas_ext_ies_o>> c;
13655
13656 void destroy_();
13657};
13658
13659// IAB-Info-IAB-DU-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13660using iab_info_iab_du_ext_ies_o = protocol_ext_empty_o;
13661
13662// LoS-NLoSIndicatorHard ::= ENUMERATED
13664 enum options { nlo_s, lo_s, nulltype } value;
13665
13666 const char* to_string() const;
13667};
13669
13670// LoS-NLoSInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
13672
13673// NR-U-Channel-Info-List ::= SEQUENCE (SIZE (1..16)) OF NR-U-Channel-Info-Item
13675
13677
13678// NonDynamicPQIDescriptor ::= SEQUENCE
13680 bool qos_prio_level_present = false;
13681 bool averaging_win_present = false;
13682 bool max_data_burst_volume_present = false;
13683 bool ie_exts_present = false;
13684 uint16_t five_qi = 0;
13685 uint8_t qos_prio_level = 1;
13686 uint16_t averaging_win = 0;
13687 uint16_t max_data_burst_volume = 0;
13689
13690 // sequence methods
13691 SRSASN_CODE pack(bit_ref& bref) const;
13692 SRSASN_CODE unpack(cbit_ref& bref);
13693 void to_json(json_writer& j) const;
13694};
13695
13696// PC5-QoS-Characteristics-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
13698
13699// PC5FlowBitRates-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13701
13703
13704// PRSConfiguration ::= SEQUENCE
13706 bool ie_exts_present = false;
13707 prs_res_set_list_l prs_res_set_list;
13709
13710 // sequence methods
13711 SRSASN_CODE pack(bit_ref& bref) const;
13712 SRSASN_CODE unpack(cbit_ref& bref);
13713 void to_json(json_writer& j) const;
13714};
13715
13717
13718// PRSTransmissionOffIndicationPerResource-Item ::= SEQUENCE
13720 bool ext = false;
13721 bool ie_exts_present = false;
13722 uint8_t prs_res_id = 0;
13724 // ...
13725
13726 // sequence methods
13727 SRSASN_CODE pack(bit_ref& bref) const;
13728 SRSASN_CODE unpack(cbit_ref& bref);
13729 void to_json(json_writer& j) const;
13730};
13731
13732// PRSTransmissionOffPerResource-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13734
13735// PRSTransmissionOffPerResourceSet-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13737
13739
13740// RequestedDLPRSResource-Item ::= SEQUENCE
13742 bool ext = false;
13743 bool qcl_info_present = false;
13744 bool ie_exts_present = false;
13745 prs_res_qcl_info_c qcl_info;
13747 // ...
13748
13749 // sequence methods
13750 SRSASN_CODE pack(bit_ref& bref) const;
13751 SRSASN_CODE unpack(cbit_ref& bref);
13752 void to_json(json_writer& j) const;
13753};
13754
13755// SFN-Offset-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13757
13758// SRSResourceTypeChoice ::= CHOICE
13760 struct types_opts {
13761 enum options { srs_res_info, pos_srs_res_info, choice_ext, nulltype } value;
13762
13763 const char* to_string() const;
13764 };
13766
13767 // choice methods
13768 srs_res_type_choice_c() = default;
13770 srs_res_type_choice_c& operator=(const srs_res_type_choice_c& other);
13771 ~srs_res_type_choice_c() { destroy_(); }
13772 void set(types::options e = types::nulltype);
13773 types type() const { return type_; }
13774 SRSASN_CODE pack(bit_ref& bref) const;
13775 SRSASN_CODE unpack(cbit_ref& bref);
13776 void to_json(json_writer& j) const;
13777 // getters
13778 srs_info_s& srs_res_info()
13779 {
13780 assert_choice_type(types::srs_res_info, type_, "SRSResourceTypeChoice");
13781 return c.get<srs_info_s>();
13782 }
13783 pos_srs_info_s& pos_srs_res_info()
13784 {
13785 assert_choice_type(types::pos_srs_res_info, type_, "SRSResourceTypeChoice");
13786 return c.get<pos_srs_info_s>();
13787 }
13788 protocol_ie_single_container_s<srs_res_type_choice_ext_ies_o>& choice_ext()
13789 {
13790 assert_choice_type(types::choice_ext, type_, "SRSResourceTypeChoice");
13791 return c.get<protocol_ie_single_container_s<srs_res_type_choice_ext_ies_o>>();
13792 }
13793 const srs_info_s& srs_res_info() const
13794 {
13795 assert_choice_type(types::srs_res_info, type_, "SRSResourceTypeChoice");
13796 return c.get<srs_info_s>();
13797 }
13798 const pos_srs_info_s& pos_srs_res_info() const
13799 {
13800 assert_choice_type(types::pos_srs_res_info, type_, "SRSResourceTypeChoice");
13801 return c.get<pos_srs_info_s>();
13802 }
13803 const protocol_ie_single_container_s<srs_res_type_choice_ext_ies_o>& choice_ext() const
13804 {
13805 assert_choice_type(types::choice_ext, type_, "SRSResourceTypeChoice");
13806 return c.get<protocol_ie_single_container_s<srs_res_type_choice_ext_ies_o>>();
13807 }
13808 srs_info_s& set_srs_res_info();
13809 pos_srs_info_s& set_pos_srs_res_info();
13810 protocol_ie_single_container_s<srs_res_type_choice_ext_ies_o>& set_choice_ext();
13811
13812private:
13813 types type_;
13814 choice_buffer_t<pos_srs_info_s, protocol_ie_single_container_s<srs_res_type_choice_ext_ies_o>, srs_info_s> c;
13815
13816 void destroy_();
13817};
13818
13819// SRSResourcetype-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13821 // Extension ::= OPEN TYPE
13822 struct ext_c {
13823 struct types_opts {
13824 enum options { srs_port_idx, nulltype } value;
13825
13826 const char* to_string() const;
13827 };
13829
13830 // choice methods
13831 types type() const { return types::srs_port_idx; }
13832 SRSASN_CODE pack(bit_ref& bref) const;
13833 SRSASN_CODE unpack(cbit_ref& bref);
13834 void to_json(json_writer& j) const;
13835 // getters
13836 srs_port_idx_e& srs_port_idx() { return c; }
13837 const srs_port_idx_e& srs_port_idx() const { return c; }
13838
13839 private:
13840 srs_port_idx_e c;
13841 };
13842
13843 // members lookup methods
13844 static uint32_t idx_to_id(uint32_t idx);
13845 static bool is_id_valid(const uint32_t& id);
13846 static crit_e get_crit(const uint32_t& id);
13847 static ext_c get_ext(const uint32_t& id);
13848 static presence_e get_presence(const uint32_t& id);
13849};
13850
13851using ssb_info_ext_ies_container = protocol_ext_container_empty_l;
13852
13853// SSBInformation ::= SEQUENCE
13855 bool ie_exts_present = false;
13856 ssb_info_list_l ssb_info_list;
13858
13859 // sequence methods
13860 SRSASN_CODE pack(bit_ref& bref) const;
13861 SRSASN_CODE unpack(cbit_ref& bref);
13862 void to_json(json_writer& j) const;
13863};
13864
13865// ServedPLMNs-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13867 // Extension ::= OPEN TYPE
13868 struct ext_c {
13869 struct types_opts {
13870 enum options {
13871 tai_slice_support_list,
13872 npn_support_info,
13873 extended_tai_slice_support_list,
13874 tai_nsag_support_list,
13875 nulltype
13876 } value;
13877
13878 const char* to_string() const;
13879 };
13881
13882 // choice methods
13883 ext_c() = default;
13884 void set(types::options e = types::nulltype);
13885 types type() const { return type_; }
13886 SRSASN_CODE pack(bit_ref& bref) const;
13887 SRSASN_CODE unpack(cbit_ref& bref);
13888 void to_json(json_writer& j) const;
13889 // getters
13890 slice_support_list_l& tai_slice_support_list();
13891 npn_support_info_c& npn_support_info();
13892 extended_slice_support_list_l& extended_tai_slice_support_list();
13893 nsag_support_list_l& tai_nsag_support_list();
13894 const slice_support_list_l& tai_slice_support_list() const;
13895 const npn_support_info_c& npn_support_info() const;
13896 const extended_slice_support_list_l& extended_tai_slice_support_list() const;
13897 const nsag_support_list_l& tai_nsag_support_list() const;
13898
13899 private:
13900 types type_;
13902 };
13903
13904 // members lookup methods
13905 static uint32_t idx_to_id(uint32_t idx);
13906 static bool is_id_valid(const uint32_t& id);
13907 static crit_e get_crit(const uint32_t& id);
13908 static ext_c get_ext(const uint32_t& id);
13909 static presence_e get_presence(const uint32_t& id);
13910};
13911
13912using spatial_direction_info_ext_ies_container = protocol_ext_container_empty_l;
13913
13914// SpatialDirectionInformation ::= SEQUENCE
13916 bool ie_exts_present = false;
13917 nr_prs_beam_info_s nr_prs_beam_info;
13919
13920 // sequence methods
13921 SRSASN_CODE pack(bit_ref& bref) const;
13922 SRSASN_CODE unpack(cbit_ref& bref);
13923 void to_json(json_writer& j) const;
13924};
13925
13927
13928// SpatialRelationPerSRSResourceItem ::= SEQUENCE
13930 bool ext = false;
13931 bool ie_exts_present = false;
13932 ref_sig_c ref_sig;
13934 // ...
13935
13936 // sequence methods
13937 SRSASN_CODE pack(bit_ref& bref) const;
13938 SRSASN_CODE unpack(cbit_ref& bref);
13939 void to_json(json_writer& j) const;
13940};
13941
13942// SpatialRelationforResourceIDItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13944
13945// StartTimeAndDuration-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13947
13948// TDD-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
13950 // Extension ::= OPEN TYPE
13951 struct ext_c {
13952 struct types_opts {
13953 enum options { intended_tdd_dl_ul_cfg, tdd_ul_dl_cfg_common_nr, carrier_list, nulltype } value;
13954
13955 const char* to_string() const;
13956 };
13958
13959 // choice methods
13960 ext_c() = default;
13961 void set(types::options e = types::nulltype);
13962 types type() const { return type_; }
13963 SRSASN_CODE pack(bit_ref& bref) const;
13964 SRSASN_CODE unpack(cbit_ref& bref);
13965 void to_json(json_writer& j) const;
13966 // getters
13967 intended_tdd_dl_ul_cfg_s& intended_tdd_dl_ul_cfg();
13968 unbounded_octstring<true>& tdd_ul_dl_cfg_common_nr();
13969 nr_carrier_list_l& carrier_list();
13970 const intended_tdd_dl_ul_cfg_s& intended_tdd_dl_ul_cfg() const;
13971 const unbounded_octstring<true>& tdd_ul_dl_cfg_common_nr() const;
13972 const nr_carrier_list_l& carrier_list() const;
13973
13974 private:
13975 types type_;
13977 };
13978
13979 // members lookup methods
13980 static uint32_t idx_to_id(uint32_t idx);
13981 static bool is_id_valid(const uint32_t& id);
13982 static crit_e get_crit(const uint32_t& id);
13983 static ext_c get_ext(const uint32_t& id);
13984 static presence_e get_presence(const uint32_t& id);
13985};
13986
13987// TRPInformationTypeResponseItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
13989 // Value ::= OPEN TYPE
13990 struct value_c {
13991 struct types_opts {
13992 enum options { trp_type, on_demand_prs, trp_tx_teg_assoc, trp_beam_ant_info, nulltype } value;
13993
13994 const char* to_string() const;
13995 };
13997
13998 // choice methods
13999 value_c() = default;
14000 void set(types::options e = types::nulltype);
14001 types type() const { return type_; }
14002 SRSASN_CODE pack(bit_ref& bref) const;
14003 SRSASN_CODE unpack(cbit_ref& bref);
14004 void to_json(json_writer& j) const;
14005 // getters
14006 trp_type_e& trp_type();
14007 on_demand_prs_info_s& on_demand_prs();
14008 trp_tx_teg_assoc_l& trp_tx_teg_assoc();
14009 trp_beam_ant_info_s& trp_beam_ant_info();
14010 const trp_type_e& trp_type() const;
14011 const on_demand_prs_info_s& on_demand_prs() const;
14012 const trp_tx_teg_assoc_l& trp_tx_teg_assoc() const;
14013 const trp_beam_ant_info_s& trp_beam_ant_info() const;
14014
14015 private:
14016 types type_;
14018 };
14019
14020 // members lookup methods
14021 static uint32_t idx_to_id(uint32_t idx);
14022 static bool is_id_valid(const uint32_t& id);
14023 static crit_e get_crit(const uint32_t& id);
14024 static value_c get_value(const uint32_t& id);
14025 static presence_e get_presence(const uint32_t& id);
14026};
14027
14028// TimeStampSlotIndex-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
14030 // Value ::= OPEN TYPE
14031 struct value_c {
14032 struct types_opts {
14033 enum options { scs_480, scs_960, nulltype } value;
14034
14035 const char* to_string() const;
14036 };
14038
14039 // choice methods
14040 value_c() = default;
14041 void set(types::options e = types::nulltype);
14042 types type() const { return type_; }
14043 SRSASN_CODE pack(bit_ref& bref) const;
14044 SRSASN_CODE unpack(cbit_ref& bref);
14045 void to_json(json_writer& j) const;
14046 // getters
14047 uint16_t& scs_480();
14048 uint16_t& scs_960();
14049 const uint16_t& scs_480() const;
14050 const uint16_t& scs_960() const;
14051
14052 private:
14053 types type_;
14055 };
14056
14057 // members lookup methods
14058 static uint32_t idx_to_id(uint32_t idx);
14059 static bool is_id_valid(const uint32_t& id);
14060 static crit_e get_crit(const uint32_t& id);
14061 static value_c get_value(const uint32_t& id);
14062 static presence_e get_presence(const uint32_t& id);
14063};
14064
14065// UACAction ::= ENUMERATED
14067 enum options {
14068 reject_non_emergency_mo_dt,
14069 reject_rrc_cr_sig,
14070 permit_emergency_sessions_and_mobile_terminated_services_only,
14071 permit_high_prio_sessions_and_mobile_terminated_services_only,
14072 // ...
14073 nulltype
14074 } value;
14075
14076 const char* to_string() const;
14077};
14079
14080// UACCategoryType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
14082
14084
14085// UACOperatorDefined ::= SEQUENCE
14087 bool ie_exts_present = false;
14088 uint8_t access_category = 32;
14091
14092 // sequence methods
14093 SRSASN_CODE pack(bit_ref& bref) const;
14094 SRSASN_CODE unpack(cbit_ref& bref);
14095 void to_json(json_writer& j) const;
14096};
14097
14098// UL-RTOA-Measurement-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
14100 // Extension ::= OPEN TYPE
14101 struct ext_c {
14102 struct types_opts {
14103 enum options { extended_add_path_list, trp_rx_teg_info, nulltype } value;
14104
14105 const char* to_string() const;
14106 };
14108
14109 // choice methods
14110 ext_c() = default;
14111 void set(types::options e = types::nulltype);
14112 types type() const { return type_; }
14113 SRSASN_CODE pack(bit_ref& bref) const;
14114 SRSASN_CODE unpack(cbit_ref& bref);
14115 void to_json(json_writer& j) const;
14116 // getters
14117 extended_add_path_list_l& extended_add_path_list();
14118 trp_rx_teg_info_s& trp_rx_teg_info();
14119 const extended_add_path_list_l& extended_add_path_list() const;
14120 const trp_rx_teg_info_s& trp_rx_teg_info() const;
14121
14122 private:
14123 types type_;
14125 };
14126
14127 // members lookup methods
14128 static uint32_t idx_to_id(uint32_t idx);
14129 static bool is_id_valid(const uint32_t& id);
14130 static crit_e get_crit(const uint32_t& id);
14131 static ext_c get_ext(const uint32_t& id);
14132 static presence_e get_presence(const uint32_t& id);
14133};
14134
14135// UL-RTOA-MeasurementItem ::= CHOICE
14137 struct types_opts {
14138 enum options { k0, k1, k2, k3, k4, k5, choice_ext, nulltype } value;
14139 typedef uint8_t number_type;
14140
14141 const char* to_string() const;
14142 uint8_t to_number() const;
14143 };
14145
14146 // choice methods
14147 ul_rtoa_meas_item_c() = default;
14149 ul_rtoa_meas_item_c& operator=(const ul_rtoa_meas_item_c& other);
14150 ~ul_rtoa_meas_item_c() { destroy_(); }
14151 void set(types::options e = types::nulltype);
14152 types type() const { return type_; }
14153 SRSASN_CODE pack(bit_ref& bref) const;
14154 SRSASN_CODE unpack(cbit_ref& bref);
14155 void to_json(json_writer& j) const;
14156 // getters
14157 uint32_t& k0()
14158 {
14159 assert_choice_type(types::k0, type_, "UL-RTOA-MeasurementItem");
14160 return c.get<uint32_t>();
14161 }
14162 uint32_t& k1()
14163 {
14164 assert_choice_type(types::k1, type_, "UL-RTOA-MeasurementItem");
14165 return c.get<uint32_t>();
14166 }
14167 uint32_t& k2()
14168 {
14169 assert_choice_type(types::k2, type_, "UL-RTOA-MeasurementItem");
14170 return c.get<uint32_t>();
14171 }
14172 uint32_t& k3()
14173 {
14174 assert_choice_type(types::k3, type_, "UL-RTOA-MeasurementItem");
14175 return c.get<uint32_t>();
14176 }
14177 uint32_t& k4()
14178 {
14179 assert_choice_type(types::k4, type_, "UL-RTOA-MeasurementItem");
14180 return c.get<uint32_t>();
14181 }
14182 uint16_t& k5()
14183 {
14184 assert_choice_type(types::k5, type_, "UL-RTOA-MeasurementItem");
14185 return c.get<uint16_t>();
14186 }
14187 protocol_ie_single_container_s<ul_rtoa_meas_item_ext_ies_o>& choice_ext()
14188 {
14189 assert_choice_type(types::choice_ext, type_, "UL-RTOA-MeasurementItem");
14190 return c.get<protocol_ie_single_container_s<ul_rtoa_meas_item_ext_ies_o>>();
14191 }
14192 const uint32_t& k0() const
14193 {
14194 assert_choice_type(types::k0, type_, "UL-RTOA-MeasurementItem");
14195 return c.get<uint32_t>();
14196 }
14197 const uint32_t& k1() const
14198 {
14199 assert_choice_type(types::k1, type_, "UL-RTOA-MeasurementItem");
14200 return c.get<uint32_t>();
14201 }
14202 const uint32_t& k2() const
14203 {
14204 assert_choice_type(types::k2, type_, "UL-RTOA-MeasurementItem");
14205 return c.get<uint32_t>();
14206 }
14207 const uint32_t& k3() const
14208 {
14209 assert_choice_type(types::k3, type_, "UL-RTOA-MeasurementItem");
14210 return c.get<uint32_t>();
14211 }
14212 const uint32_t& k4() const
14213 {
14214 assert_choice_type(types::k4, type_, "UL-RTOA-MeasurementItem");
14215 return c.get<uint32_t>();
14216 }
14217 const uint16_t& k5() const
14218 {
14219 assert_choice_type(types::k5, type_, "UL-RTOA-MeasurementItem");
14220 return c.get<uint16_t>();
14221 }
14222 const protocol_ie_single_container_s<ul_rtoa_meas_item_ext_ies_o>& choice_ext() const
14223 {
14224 assert_choice_type(types::choice_ext, type_, "UL-RTOA-MeasurementItem");
14225 return c.get<protocol_ie_single_container_s<ul_rtoa_meas_item_ext_ies_o>>();
14226 }
14227 uint32_t& set_k0();
14228 uint32_t& set_k1();
14229 uint32_t& set_k2();
14230 uint32_t& set_k3();
14231 uint32_t& set_k4();
14232 uint16_t& set_k5();
14233 protocol_ie_single_container_s<ul_rtoa_meas_item_ext_ies_o>& set_choice_ext();
14234
14235private:
14236 types type_;
14237 choice_buffer_t<protocol_ie_single_container_s<ul_rtoa_meas_item_ext_ies_o>> c;
14238
14239 void destroy_();
14240};
14241
14242// VictimgNBSetID-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
14243using victim_gnb_set_id_ext_ies_o = protocol_ext_empty_o;
14244
14245// Cell-Direction ::= ENUMERATED
14247 enum options { dl_only, ul_only, nulltype } value;
14248
14249 const char* to_string() const;
14250};
14252
14254 bool ul_carrier_list_present = false;
14255 bool dl_carrier_list_present = false;
14256 nr_carrier_list_l ul_carrier_list;
14257 nr_carrier_list_l dl_carrier_list;
14258
14259 // sequence methods
14260 SRSASN_CODE pack(bit_ref& bref) const;
14261 SRSASN_CODE unpack(cbit_ref& bref);
14262 void to_json(json_writer& j) const;
14263};
14264
14265// FDD-Info ::= SEQUENCE
14267 bool ext = false;
14268 bool ie_exts_present = false;
14269 nr_freq_info_s ul_nr_freq_info;
14270 nr_freq_info_s dl_nr_freq_info;
14271 tx_bw_s ul_tx_bw;
14272 tx_bw_s dl_tx_bw;
14274 // ...
14275
14276 // sequence methods
14277 SRSASN_CODE pack(bit_ref& bref) const;
14278 SRSASN_CODE unpack(cbit_ref& bref);
14279 void to_json(json_writer& j) const;
14280};
14281
14283
14284// FlowsMappedToSLDRB-Item ::= SEQUENCE
14286 bool ext = false;
14287 bool ie_exts_present = false;
14288 uint16_t pc5_qos_flow_id = 1;
14290 // ...
14291
14292 // sequence methods
14293 SRSASN_CODE pack(bit_ref& bref) const;
14294 SRSASN_CODE unpack(cbit_ref& bref);
14295 void to_json(json_writer& j) const;
14296};
14297
14299 bool extended_add_path_list_present = false;
14300 bool trpteg_info_present = false;
14301 extended_add_path_list_l extended_add_path_list;
14302 trpteg_info_c trpteg_info;
14303
14304 // sequence methods
14305 SRSASN_CODE pack(bit_ref& bref) const;
14306 SRSASN_CODE unpack(cbit_ref& bref);
14307 void to_json(json_writer& j) const;
14308};
14309
14310// GNB-RxTxTimeDiff ::= SEQUENCE
14312 bool ie_exts_present = false;
14313 gnb_rx_tx_time_diff_meas_c rx_tx_time_diff;
14314 add_path_list_l add_path_list;
14316
14317 // sequence methods
14318 SRSASN_CODE pack(bit_ref& bref) const;
14319 SRSASN_CODE unpack(cbit_ref& bref);
14320 void to_json(json_writer& j) const;
14321};
14322
14323// GTPTLA-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
14325
14327
14328// IAB-Info-IAB-DU ::= SEQUENCE
14330 bool mux_info_present = false;
14331 bool iab_stc_info_present = false;
14332 bool ie_exts_present = false;
14333 mux_info_s mux_info;
14334 iab_stc_info_s iab_stc_info;
14336
14337 // sequence methods
14338 SRSASN_CODE pack(bit_ref& bref) const;
14339 SRSASN_CODE unpack(cbit_ref& bref);
14340 void to_json(json_writer& j) const;
14341};
14342
14343// LoS-NLoSInformation ::= CHOICE
14345 struct types_opts {
14346 enum options { lo_s_n_lo_si_ndicator_soft, lo_s_n_lo_si_ndicator_hard, choice_ext, nulltype } value;
14347
14348 const char* to_string() const;
14349 };
14351
14352 // choice methods
14353 lo_s_n_lo_si_nformation_c() = default;
14356 ~lo_s_n_lo_si_nformation_c() { destroy_(); }
14357 void set(types::options e = types::nulltype);
14358 types type() const { return type_; }
14359 SRSASN_CODE pack(bit_ref& bref) const;
14360 SRSASN_CODE unpack(cbit_ref& bref);
14361 void to_json(json_writer& j) const;
14362 // getters
14363 uint8_t& lo_s_n_lo_si_ndicator_soft()
14364 {
14365 assert_choice_type(types::lo_s_n_lo_si_ndicator_soft, type_, "LoS-NLoSInformation");
14366 return c.get<uint8_t>();
14367 }
14368 lo_s_n_lo_si_ndicator_hard_e& lo_s_n_lo_si_ndicator_hard()
14369 {
14370 assert_choice_type(types::lo_s_n_lo_si_ndicator_hard, type_, "LoS-NLoSInformation");
14371 return c.get<lo_s_n_lo_si_ndicator_hard_e>();
14372 }
14373 protocol_ie_single_container_s<lo_s_n_lo_si_nformation_ext_ies_o>& choice_ext()
14374 {
14375 assert_choice_type(types::choice_ext, type_, "LoS-NLoSInformation");
14376 return c.get<protocol_ie_single_container_s<lo_s_n_lo_si_nformation_ext_ies_o>>();
14377 }
14378 const uint8_t& lo_s_n_lo_si_ndicator_soft() const
14379 {
14380 assert_choice_type(types::lo_s_n_lo_si_ndicator_soft, type_, "LoS-NLoSInformation");
14381 return c.get<uint8_t>();
14382 }
14383 const lo_s_n_lo_si_ndicator_hard_e& lo_s_n_lo_si_ndicator_hard() const
14384 {
14385 assert_choice_type(types::lo_s_n_lo_si_ndicator_hard, type_, "LoS-NLoSInformation");
14386 return c.get<lo_s_n_lo_si_ndicator_hard_e>();
14387 }
14388 const protocol_ie_single_container_s<lo_s_n_lo_si_nformation_ext_ies_o>& choice_ext() const
14389 {
14390 assert_choice_type(types::choice_ext, type_, "LoS-NLoSInformation");
14391 return c.get<protocol_ie_single_container_s<lo_s_n_lo_si_nformation_ext_ies_o>>();
14392 }
14393 uint8_t& set_lo_s_n_lo_si_ndicator_soft();
14394 lo_s_n_lo_si_ndicator_hard_e& set_lo_s_n_lo_si_ndicator_hard();
14395 protocol_ie_single_container_s<lo_s_n_lo_si_nformation_ext_ies_o>& set_choice_ext();
14396
14397private:
14398 types type_;
14399 choice_buffer_t<protocol_ie_single_container_s<lo_s_n_lo_si_nformation_ext_ies_o>> c;
14400
14401 void destroy_();
14402};
14403
14404// M5ReportAmount ::= ENUMERATED
14406 enum options { r1, r2, r4, r8, r16, r32, r64, infinity, /*...*/ nulltype } value;
14407 typedef int8_t number_type;
14408
14409 const char* to_string() const;
14410 int8_t to_number() const;
14411};
14413
14414// M6ReportAmount ::= ENUMERATED
14416 enum options { r1, r2, r4, r8, r16, r32, r64, infinity, /*...*/ nulltype } value;
14417 typedef int8_t number_type;
14418
14419 const char* to_string() const;
14420 int8_t to_number() const;
14421};
14423
14424// M7ReportAmount ::= ENUMERATED
14426 enum options { r1, r2, r4, r8, r16, r32, r64, infinity, /*...*/ nulltype } value;
14427 typedef int8_t number_type;
14428
14429 const char* to_string() const;
14430 int8_t to_number() const;
14431};
14433
14434// MeasuredResultsValue-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
14436 // Value ::= OPEN TYPE
14437 struct value_c {
14438 struct types_opts {
14439 enum options { zo_a_info, multiple_ul_ao_a, ul_srs_rsrp_p, nulltype } value;
14440
14441 const char* to_string() const;
14442 };
14444
14445 // choice methods
14446 value_c() = default;
14447 void set(types::options e = types::nulltype);
14448 types type() const { return type_; }
14449 SRSASN_CODE pack(bit_ref& bref) const;
14450 SRSASN_CODE unpack(cbit_ref& bref);
14451 void to_json(json_writer& j) const;
14452 // getters
14453 zo_a_info_s& zo_a_info();
14454 multiple_ul_ao_a_s& multiple_ul_ao_a();
14455 ul_srs_rsrp_p_s& ul_srs_rsrp_p();
14456 const zo_a_info_s& zo_a_info() const;
14457 const multiple_ul_ao_a_s& multiple_ul_ao_a() const;
14458 const ul_srs_rsrp_p_s& ul_srs_rsrp_p() const;
14459
14460 private:
14461 types type_;
14463 };
14464
14465 // members lookup methods
14466 static uint32_t idx_to_id(uint32_t idx);
14467 static bool is_id_valid(const uint32_t& id);
14468 static crit_e get_crit(const uint32_t& id);
14469 static value_c get_value(const uint32_t& id);
14470 static presence_e get_presence(const uint32_t& id);
14471};
14472
14473// MeasurementBeamInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
14474using meas_beam_info_ext_ies_o = protocol_ext_empty_o;
14475
14476// NR-Mode-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
14478 // Value ::= OPEN TYPE
14479 struct value_c {
14480 struct types_opts {
14481 enum options { nr_u, nulltype } value;
14482
14483 const char* to_string() const;
14484 };
14486
14487 // choice methods
14488 types type() const { return types::nr_u; }
14489 SRSASN_CODE pack(bit_ref& bref) const;
14490 SRSASN_CODE unpack(cbit_ref& bref);
14491 void to_json(json_writer& j) const;
14492 // getters
14493 nr_u_ch_info_list_l& nr_u() { return c; }
14494 const nr_u_ch_info_list_l& nr_u() const { return c; }
14495
14496 private:
14497 nr_u_ch_info_list_l c;
14498 };
14499
14500 // members lookup methods
14501 static uint32_t idx_to_id(uint32_t idx);
14502 static bool is_id_valid(const uint32_t& id);
14503 static crit_e get_crit(const uint32_t& id);
14504 static value_c get_value(const uint32_t& id);
14505 static presence_e get_presence(const uint32_t& id);
14506};
14507
14508// PC5-QoS-Characteristics ::= CHOICE
14510 struct types_opts {
14511 enum options { non_dyn_pqi, dyn_pqi, choice_ext, nulltype } value;
14512
14513 const char* to_string() const;
14514 };
14516
14517 // choice methods
14518 pc5_qos_characteristics_c() = default;
14521 ~pc5_qos_characteristics_c() { destroy_(); }
14522 void set(types::options e = types::nulltype);
14523 types type() const { return type_; }
14524 SRSASN_CODE pack(bit_ref& bref) const;
14525 SRSASN_CODE unpack(cbit_ref& bref);
14526 void to_json(json_writer& j) const;
14527 // getters
14528 non_dyn_pq_id_escriptor_s& non_dyn_pqi()
14529 {
14530 assert_choice_type(types::non_dyn_pqi, type_, "PC5-QoS-Characteristics");
14531 return c.get<non_dyn_pq_id_escriptor_s>();
14532 }
14533 dyn_pq_id_escriptor_s& dyn_pqi()
14534 {
14535 assert_choice_type(types::dyn_pqi, type_, "PC5-QoS-Characteristics");
14536 return c.get<dyn_pq_id_escriptor_s>();
14537 }
14538 protocol_ie_single_container_s<pc5_qos_characteristics_ext_ies_o>& choice_ext()
14539 {
14540 assert_choice_type(types::choice_ext, type_, "PC5-QoS-Characteristics");
14541 return c.get<protocol_ie_single_container_s<pc5_qos_characteristics_ext_ies_o>>();
14542 }
14543 const non_dyn_pq_id_escriptor_s& non_dyn_pqi() const
14544 {
14545 assert_choice_type(types::non_dyn_pqi, type_, "PC5-QoS-Characteristics");
14546 return c.get<non_dyn_pq_id_escriptor_s>();
14547 }
14548 const dyn_pq_id_escriptor_s& dyn_pqi() const
14549 {
14550 assert_choice_type(types::dyn_pqi, type_, "PC5-QoS-Characteristics");
14551 return c.get<dyn_pq_id_escriptor_s>();
14552 }
14553 const protocol_ie_single_container_s<pc5_qos_characteristics_ext_ies_o>& choice_ext() const
14554 {
14555 assert_choice_type(types::choice_ext, type_, "PC5-QoS-Characteristics");
14556 return c.get<protocol_ie_single_container_s<pc5_qos_characteristics_ext_ies_o>>();
14557 }
14558 non_dyn_pq_id_escriptor_s& set_non_dyn_pqi();
14559 dyn_pq_id_escriptor_s& set_dyn_pqi();
14560 protocol_ie_single_container_s<pc5_qos_characteristics_ext_ies_o>& set_choice_ext();
14561
14562private:
14563 types type_;
14564 choice_buffer_t<dyn_pq_id_escriptor_s,
14565 non_dyn_pq_id_escriptor_s,
14566 protocol_ie_single_container_s<pc5_qos_characteristics_ext_ies_o>>
14567 c;
14568
14569 void destroy_();
14570};
14571
14572using pc5_flow_bit_rates_ext_ies_container = protocol_ext_container_empty_l;
14573
14574// PC5FlowBitRates ::= SEQUENCE
14576 bool ext = false;
14577 bool ie_exts_present = false;
14578 uint64_t guaranteed_flow_bit_rate = 0;
14579 uint64_t max_flow_bit_rate = 0;
14581 // ...
14582
14583 // sequence methods
14584 SRSASN_CODE pack(bit_ref& bref) const;
14585 SRSASN_CODE unpack(cbit_ref& bref);
14586 void to_json(json_writer& j) const;
14587};
14588
14589// PC5QoSParameters-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
14591
14593
14594// PRSTransmissionOffPerResource-Item ::= SEQUENCE
14597
14598 // member variables
14599 bool ext = false;
14600 bool ie_exts_present = false;
14601 uint8_t prs_res_set_id = 0;
14602 prs_tx_off_ind_per_res_list_l_ prs_tx_off_ind_per_res_list;
14604 // ...
14605
14606 // sequence methods
14607 SRSASN_CODE pack(bit_ref& bref) const;
14608 SRSASN_CODE unpack(cbit_ref& bref);
14609 void to_json(json_writer& j) const;
14610};
14611
14613
14614// PRSTransmissionOffPerResourceSet-Item ::= SEQUENCE
14616 bool ext = false;
14617 bool ie_exts_present = false;
14618 uint8_t prs_res_set_id = 0;
14620 // ...
14621
14622 // sequence methods
14623 SRSASN_CODE pack(bit_ref& bref) const;
14624 SRSASN_CODE unpack(cbit_ref& bref);
14625 void to_json(json_writer& j) const;
14626};
14627
14628// PathlossReferenceSignal-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
14630
14631// PeriodicityList-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
14633
14634// PeriodicitySRS ::= ENUMERATED
14636 enum options {
14637 ms0p125,
14638 ms0p25,
14639 ms0p5,
14640 ms0p625,
14641 ms1,
14642 ms1p25,
14643 ms2,
14644 ms2p5,
14645 ms4,
14646 ms5,
14647 ms8,
14648 ms10,
14649 ms16,
14650 ms20,
14651 ms32,
14652 ms40,
14653 ms64,
14654 ms80,
14655 ms160,
14656 ms320,
14657 ms640,
14658 ms1280,
14659 ms2560,
14660 ms5120,
14661 ms10240,
14662 // ...
14663 nulltype
14664 } value;
14665
14666 const char* to_string() const;
14667};
14669
14670// RequestedDLPRSResource-List ::= SEQUENCE (SIZE (1..64)) OF RequestedDLPRSResource-Item
14672
14673// RequestedDLPRSResourceSet-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
14675
14676// SCS-SpecificCarrier-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
14678
14680
14681// SFN-Offset ::= SEQUENCE
14683 bool ext = false;
14684 bool ie_exts_present = false;
14685 fixed_bitstring<24, false, true> sfn_time_offset;
14687 // ...
14688
14689 // sequence methods
14690 SRSASN_CODE pack(bit_ref& bref) const;
14691 SRSASN_CODE unpack(cbit_ref& bref);
14692 void to_json(json_writer& j) const;
14693};
14694
14695// SRSResourcetype ::= SEQUENCE
14697 bool ext = false;
14698 srs_res_type_choice_c srs_res_type_choice;
14700 // ...
14701
14702 // sequence methods
14703 SRSASN_CODE pack(bit_ref& bref) const;
14704 SRSASN_CODE unpack(cbit_ref& bref);
14705 void to_json(json_writer& j) const;
14706};
14707
14709 bool tai_slice_support_list_present = false;
14710 bool npn_support_info_present = false;
14711 bool extended_tai_slice_support_list_present = false;
14712 bool tai_nsag_support_list_present = false;
14713 slice_support_list_l tai_slice_support_list;
14714 npn_support_info_c npn_support_info;
14715 extended_slice_support_list_l extended_tai_slice_support_list;
14716 nsag_support_list_l tai_nsag_support_list;
14717
14718 // sequence methods
14719 SRSASN_CODE pack(bit_ref& bref) const;
14720 SRSASN_CODE unpack(cbit_ref& bref);
14721 void to_json(json_writer& j) const;
14722};
14723
14724// ServedPLMNs-Item ::= SEQUENCE
14726 bool ext = false;
14727 bool ie_exts_present = false;
14730 // ...
14731
14732 // sequence methods
14733 SRSASN_CODE pack(bit_ref& bref) const;
14734 SRSASN_CODE unpack(cbit_ref& bref);
14735 void to_json(json_writer& j) const;
14736};
14737
14738// SpatialRelationPerSRSResource-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
14740
14741// SpatialRelationPerSRSResource-List ::= SEQUENCE (SIZE (1..16)) OF SpatialRelationPerSRSResourceItem
14743
14745
14746// SpatialRelationforResourceIDItem ::= SEQUENCE
14748 bool ie_exts_present = false;
14749 ref_sig_c ref_sig;
14751
14752 // sequence methods
14753 SRSASN_CODE pack(bit_ref& bref) const;
14754 SRSASN_CODE unpack(cbit_ref& bref);
14755 void to_json(json_writer& j) const;
14756};
14757
14759
14760// StartTimeAndDuration ::= SEQUENCE
14762 bool ext = false;
14763 bool start_time_present = false;
14764 bool dur_present = false;
14765 bool ie_exts_present = false;
14767 uint32_t dur = 0;
14769 // ...
14770
14771 // sequence methods
14772 SRSASN_CODE pack(bit_ref& bref) const;
14773 SRSASN_CODE unpack(cbit_ref& bref);
14774 void to_json(json_writer& j) const;
14775};
14776
14777// Supported-MBS-FSA-ID-List ::= SEQUENCE (SIZE (1..256)) OF OCTET STRING (SIZE (3))
14779
14781 bool intended_tdd_dl_ul_cfg_present = false;
14782 bool tdd_ul_dl_cfg_common_nr_present = false;
14783 bool carrier_list_present = false;
14784 intended_tdd_dl_ul_cfg_s intended_tdd_dl_ul_cfg;
14785 unbounded_octstring<true> tdd_ul_dl_cfg_common_nr;
14786 nr_carrier_list_l carrier_list;
14787
14788 // sequence methods
14789 SRSASN_CODE pack(bit_ref& bref) const;
14790 SRSASN_CODE unpack(cbit_ref& bref);
14791 void to_json(json_writer& j) const;
14792};
14793
14794// TDD-Info ::= SEQUENCE
14796 bool ext = false;
14797 bool ie_exts_present = false;
14798 nr_freq_info_s nr_freq_info;
14799 tx_bw_s tx_bw;
14801 // ...
14802
14803 // sequence methods
14804 SRSASN_CODE pack(bit_ref& bref) const;
14805 SRSASN_CODE unpack(cbit_ref& bref);
14806 void to_json(json_writer& j) const;
14807};
14808
14809// TRPInformationTypeResponseItem ::= CHOICE
14811 struct types_opts {
14812 enum options {
14813 pci_nr,
14814 ng_ran_cgi,
14815 nr_arfcn,
14816 prs_cfg,
14817 ss_binfo,
14818 sfn_initisation_time,
14819 spatial_direction_info,
14820 geographical_coordinates,
14821 choice_ext,
14822 nulltype
14823 } value;
14824
14825 const char* to_string() const;
14826 };
14828
14829 // choice methods
14830 trp_info_type_resp_item_c() = default;
14833 ~trp_info_type_resp_item_c() { destroy_(); }
14834 void set(types::options e = types::nulltype);
14835 types type() const { return type_; }
14836 SRSASN_CODE pack(bit_ref& bref) const;
14837 SRSASN_CODE unpack(cbit_ref& bref);
14838 void to_json(json_writer& j) const;
14839 // getters
14840 uint16_t& pci_nr()
14841 {
14842 assert_choice_type(types::pci_nr, type_, "TRPInformationTypeResponseItem");
14843 return c.get<uint16_t>();
14844 }
14845 nr_cgi_s& ng_ran_cgi()
14846 {
14847 assert_choice_type(types::ng_ran_cgi, type_, "TRPInformationTypeResponseItem");
14848 return c.get<nr_cgi_s>();
14849 }
14850 uint32_t& nr_arfcn()
14851 {
14852 assert_choice_type(types::nr_arfcn, type_, "TRPInformationTypeResponseItem");
14853 return c.get<uint32_t>();
14854 }
14855 prs_cfg_s& prs_cfg()
14856 {
14857 assert_choice_type(types::prs_cfg, type_, "TRPInformationTypeResponseItem");
14858 return c.get<prs_cfg_s>();
14859 }
14860 ssb_info_s& ss_binfo()
14861 {
14862 assert_choice_type(types::ss_binfo, type_, "TRPInformationTypeResponseItem");
14863 return c.get<ssb_info_s>();
14864 }
14865 fixed_bitstring<64, false, true>& sfn_initisation_time()
14866 {
14867 assert_choice_type(types::sfn_initisation_time, type_, "TRPInformationTypeResponseItem");
14868 return c.get<fixed_bitstring<64, false, true>>();
14869 }
14870 spatial_direction_info_s& spatial_direction_info()
14871 {
14872 assert_choice_type(types::spatial_direction_info, type_, "TRPInformationTypeResponseItem");
14873 return c.get<spatial_direction_info_s>();
14874 }
14875 geographical_coordinates_s& geographical_coordinates()
14876 {
14877 assert_choice_type(types::geographical_coordinates, type_, "TRPInformationTypeResponseItem");
14878 return c.get<geographical_coordinates_s>();
14879 }
14880 protocol_ie_single_container_s<trp_info_type_resp_item_ext_ies_o>& choice_ext()
14881 {
14882 assert_choice_type(types::choice_ext, type_, "TRPInformationTypeResponseItem");
14883 return c.get<protocol_ie_single_container_s<trp_info_type_resp_item_ext_ies_o>>();
14884 }
14885 const uint16_t& pci_nr() const
14886 {
14887 assert_choice_type(types::pci_nr, type_, "TRPInformationTypeResponseItem");
14888 return c.get<uint16_t>();
14889 }
14890 const nr_cgi_s& ng_ran_cgi() const
14891 {
14892 assert_choice_type(types::ng_ran_cgi, type_, "TRPInformationTypeResponseItem");
14893 return c.get<nr_cgi_s>();
14894 }
14895 const uint32_t& nr_arfcn() const
14896 {
14897 assert_choice_type(types::nr_arfcn, type_, "TRPInformationTypeResponseItem");
14898 return c.get<uint32_t>();
14899 }
14900 const prs_cfg_s& prs_cfg() const
14901 {
14902 assert_choice_type(types::prs_cfg, type_, "TRPInformationTypeResponseItem");
14903 return c.get<prs_cfg_s>();
14904 }
14905 const ssb_info_s& ss_binfo() const
14906 {
14907 assert_choice_type(types::ss_binfo, type_, "TRPInformationTypeResponseItem");
14908 return c.get<ssb_info_s>();
14909 }
14910 const fixed_bitstring<64, false, true>& sfn_initisation_time() const
14911 {
14912 assert_choice_type(types::sfn_initisation_time, type_, "TRPInformationTypeResponseItem");
14913 return c.get<fixed_bitstring<64, false, true>>();
14914 }
14915 const spatial_direction_info_s& spatial_direction_info() const
14916 {
14917 assert_choice_type(types::spatial_direction_info, type_, "TRPInformationTypeResponseItem");
14918 return c.get<spatial_direction_info_s>();
14919 }
14920 const geographical_coordinates_s& geographical_coordinates() const
14921 {
14922 assert_choice_type(types::geographical_coordinates, type_, "TRPInformationTypeResponseItem");
14923 return c.get<geographical_coordinates_s>();
14924 }
14925 const protocol_ie_single_container_s<trp_info_type_resp_item_ext_ies_o>& choice_ext() const
14926 {
14927 assert_choice_type(types::choice_ext, type_, "TRPInformationTypeResponseItem");
14928 return c.get<protocol_ie_single_container_s<trp_info_type_resp_item_ext_ies_o>>();
14929 }
14930 uint16_t& set_pci_nr();
14931 nr_cgi_s& set_ng_ran_cgi();
14932 uint32_t& set_nr_arfcn();
14933 prs_cfg_s& set_prs_cfg();
14934 ssb_info_s& set_ss_binfo();
14935 fixed_bitstring<64, false, true>& set_sfn_initisation_time();
14936 spatial_direction_info_s& set_spatial_direction_info();
14937 geographical_coordinates_s& set_geographical_coordinates();
14938 protocol_ie_single_container_s<trp_info_type_resp_item_ext_ies_o>& set_choice_ext();
14939
14940private:
14941 types type_;
14942 choice_buffer_t<fixed_bitstring<64, false, true>,
14943 geographical_coordinates_s,
14944 nr_cgi_s,
14945 protocol_ie_single_container_s<trp_info_type_resp_item_ext_ies_o>,
14946 prs_cfg_s,
14947 spatial_direction_info_s,
14948 ssb_info_s>
14949 c;
14950
14951 void destroy_();
14952};
14953
14954// TimeStamp-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
14955using time_stamp_ext_ies_o = protocol_ext_empty_o;
14956
14957// TimeStampSlotIndex ::= CHOICE
14959 struct types_opts {
14960 enum options { scs_15, scs_30, scs_60, scs_120, choice_ext, nulltype } value;
14961 typedef int8_t number_type;
14962
14963 const char* to_string() const;
14964 int8_t to_number() const;
14965 };
14967
14968 // choice methods
14969 time_stamp_slot_idx_c() = default;
14971 time_stamp_slot_idx_c& operator=(const time_stamp_slot_idx_c& other);
14972 ~time_stamp_slot_idx_c() { destroy_(); }
14973 void set(types::options e = types::nulltype);
14974 types type() const { return type_; }
14975 SRSASN_CODE pack(bit_ref& bref) const;
14976 SRSASN_CODE unpack(cbit_ref& bref);
14977 void to_json(json_writer& j) const;
14978 // getters
14979 uint8_t& scs_15()
14980 {
14981 assert_choice_type(types::scs_15, type_, "TimeStampSlotIndex");
14982 return c.get<uint8_t>();
14983 }
14984 uint8_t& scs_30()
14985 {
14986 assert_choice_type(types::scs_30, type_, "TimeStampSlotIndex");
14987 return c.get<uint8_t>();
14988 }
14989 uint8_t& scs_60()
14990 {
14991 assert_choice_type(types::scs_60, type_, "TimeStampSlotIndex");
14992 return c.get<uint8_t>();
14993 }
14994 uint8_t& scs_120()
14995 {
14996 assert_choice_type(types::scs_120, type_, "TimeStampSlotIndex");
14997 return c.get<uint8_t>();
14998 }
14999 protocol_ie_single_container_s<time_stamp_slot_idx_ext_ies_o>& choice_ext()
15000 {
15001 assert_choice_type(types::choice_ext, type_, "TimeStampSlotIndex");
15002 return c.get<protocol_ie_single_container_s<time_stamp_slot_idx_ext_ies_o>>();
15003 }
15004 const uint8_t& scs_15() const
15005 {
15006 assert_choice_type(types::scs_15, type_, "TimeStampSlotIndex");
15007 return c.get<uint8_t>();
15008 }
15009 const uint8_t& scs_30() const
15010 {
15011 assert_choice_type(types::scs_30, type_, "TimeStampSlotIndex");
15012 return c.get<uint8_t>();
15013 }
15014 const uint8_t& scs_60() const
15015 {
15016 assert_choice_type(types::scs_60, type_, "TimeStampSlotIndex");
15017 return c.get<uint8_t>();
15018 }
15019 const uint8_t& scs_120() const
15020 {
15021 assert_choice_type(types::scs_120, type_, "TimeStampSlotIndex");
15022 return c.get<uint8_t>();
15023 }
15024 const protocol_ie_single_container_s<time_stamp_slot_idx_ext_ies_o>& choice_ext() const
15025 {
15026 assert_choice_type(types::choice_ext, type_, "TimeStampSlotIndex");
15027 return c.get<protocol_ie_single_container_s<time_stamp_slot_idx_ext_ies_o>>();
15028 }
15029 uint8_t& set_scs_15();
15030 uint8_t& set_scs_30();
15031 uint8_t& set_scs_60();
15032 uint8_t& set_scs_120();
15033 protocol_ie_single_container_s<time_stamp_slot_idx_ext_ies_o>& set_choice_ext();
15034
15035private:
15036 types type_;
15037 choice_buffer_t<protocol_ie_single_container_s<time_stamp_slot_idx_ext_ies_o>> c;
15038
15039 void destroy_();
15040};
15041
15042// UACCategoryType ::= CHOICE
15044 struct types_opts {
15045 enum options { uac_standardized, uac_operator_defined, choice_ext, nulltype } value;
15046
15047 const char* to_string() const;
15048 };
15050
15051 // choice methods
15052 uac_category_type_c() = default;
15054 uac_category_type_c& operator=(const uac_category_type_c& other);
15055 ~uac_category_type_c() { destroy_(); }
15056 void set(types::options e = types::nulltype);
15057 types type() const { return type_; }
15058 SRSASN_CODE pack(bit_ref& bref) const;
15059 SRSASN_CODE unpack(cbit_ref& bref);
15060 void to_json(json_writer& j) const;
15061 // getters
15062 uac_action_e& uac_standardized()
15063 {
15064 assert_choice_type(types::uac_standardized, type_, "UACCategoryType");
15065 return c.get<uac_action_e>();
15066 }
15067 uac_operator_defined_s& uac_operator_defined()
15068 {
15069 assert_choice_type(types::uac_operator_defined, type_, "UACCategoryType");
15070 return c.get<uac_operator_defined_s>();
15071 }
15072 protocol_ie_single_container_s<uac_category_type_ext_ies_o>& choice_ext()
15073 {
15074 assert_choice_type(types::choice_ext, type_, "UACCategoryType");
15075 return c.get<protocol_ie_single_container_s<uac_category_type_ext_ies_o>>();
15076 }
15077 const uac_action_e& uac_standardized() const
15078 {
15079 assert_choice_type(types::uac_standardized, type_, "UACCategoryType");
15080 return c.get<uac_action_e>();
15081 }
15082 const uac_operator_defined_s& uac_operator_defined() const
15083 {
15084 assert_choice_type(types::uac_operator_defined, type_, "UACCategoryType");
15085 return c.get<uac_operator_defined_s>();
15086 }
15087 const protocol_ie_single_container_s<uac_category_type_ext_ies_o>& choice_ext() const
15088 {
15089 assert_choice_type(types::choice_ext, type_, "UACCategoryType");
15090 return c.get<protocol_ie_single_container_s<uac_category_type_ext_ies_o>>();
15091 }
15092 uac_action_e& set_uac_standardized();
15093 uac_operator_defined_s& set_uac_operator_defined();
15094 protocol_ie_single_container_s<uac_category_type_ext_ies_o>& set_choice_ext();
15095
15096private:
15097 types type_;
15098 choice_buffer_t<protocol_ie_single_container_s<uac_category_type_ext_ies_o>, uac_operator_defined_s> c;
15099
15100 void destroy_();
15101};
15102
15103// UACType-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15104using uac_type_item_ext_ies_o = protocol_ext_empty_o;
15105
15107 bool extended_add_path_list_present = false;
15108 bool trp_rx_teg_info_present = false;
15109 extended_add_path_list_l extended_add_path_list;
15110 trp_rx_teg_info_s trp_rx_teg_info;
15111
15112 // sequence methods
15113 SRSASN_CODE pack(bit_ref& bref) const;
15114 SRSASN_CODE unpack(cbit_ref& bref);
15115 void to_json(json_writer& j) const;
15116};
15117
15118// UL-RTOA-Measurement ::= SEQUENCE
15120 bool ie_exts_present = false;
15121 ul_rtoa_meas_item_c ul_rtoa_meas_item;
15122 add_path_list_l add_path_list;
15124
15125 // sequence methods
15126 SRSASN_CODE pack(bit_ref& bref) const;
15127 SRSASN_CODE unpack(cbit_ref& bref);
15128 void to_json(json_writer& j) const;
15129};
15130
15132
15133// VictimgNBSetID ::= SEQUENCE
15135 bool ie_exts_present = false;
15136 fixed_bitstring<22, false, true> victim_gnb_set_id;
15138
15139 // sequence methods
15140 SRSASN_CODE pack(bit_ref& bref) const;
15141 SRSASN_CODE unpack(cbit_ref& bref);
15142 void to_json(json_writer& j) const;
15143};
15144
15145// AdditionalDuplicationIndication ::= ENUMERATED
15147 enum options { three, four, /*...*/ nulltype } value;
15148 typedef uint8_t number_type;
15149
15150 const char* to_string() const;
15151 uint8_t to_number() const;
15152};
15154
15155// FlowsMappedToSLDRB-List ::= SEQUENCE (SIZE (1..2048)) OF FlowsMappedToSLDRB-Item
15157
15158// GNB-DU-System-Information-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15160 // Extension ::= OPEN TYPE
15161 struct ext_c {
15162 struct types_opts {
15163 enum options { sib12_msg, sib13_msg, sib14_msg, sib10_msg, sib17_msg, sib20_msg, sib15_msg, nulltype } value;
15164
15165 const char* to_string() const;
15166 };
15168
15169 // choice methods
15170 ext_c() = default;
15171 void set(types::options e = types::nulltype);
15172 types type() const { return type_; }
15173 SRSASN_CODE pack(bit_ref& bref) const;
15174 SRSASN_CODE unpack(cbit_ref& bref);
15175 void to_json(json_writer& j) const;
15176 // getters
15177 unbounded_octstring<true>& sib12_msg();
15178 unbounded_octstring<true>& sib13_msg();
15179 unbounded_octstring<true>& sib14_msg();
15180 unbounded_octstring<true>& sib10_msg();
15181 unbounded_octstring<true>& sib17_msg();
15182 unbounded_octstring<true>& sib20_msg();
15183 unbounded_octstring<true>& sib15_msg();
15184 const unbounded_octstring<true>& sib12_msg() const;
15185 const unbounded_octstring<true>& sib13_msg() const;
15186 const unbounded_octstring<true>& sib14_msg() const;
15187 const unbounded_octstring<true>& sib10_msg() const;
15188 const unbounded_octstring<true>& sib17_msg() const;
15189 const unbounded_octstring<true>& sib20_msg() const;
15190 const unbounded_octstring<true>& sib15_msg() const;
15191
15192 private:
15193 types type_;
15195 };
15196
15197 // members lookup methods
15198 static uint32_t idx_to_id(uint32_t idx);
15199 static bool is_id_valid(const uint32_t& id);
15200 static crit_e get_crit(const uint32_t& id);
15201 static ext_c get_ext(const uint32_t& id);
15202 static presence_e get_presence(const uint32_t& id);
15203};
15204
15205using gtp_tla_item_ext_ies_container = protocol_ext_container_empty_l;
15206
15207// GTPTLA-Item ::= SEQUENCE
15209 bool ie_exts_present = false;
15210 bounded_bitstring<1, 160, true, true> gtp_transport_layer_address;
15212
15213 // sequence methods
15214 SRSASN_CODE pack(bit_ref& bref) const;
15215 SRSASN_CODE unpack(cbit_ref& bref);
15216 void to_json(json_writer& j) const;
15217};
15218
15219// IAB-MT-Cell-NA-Resource-Configuration-FDD-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15221
15222// IAB-MT-Cell-NA-Resource-Configuration-TDD-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15224
15225// LastUsedCellIndication ::= ENUMERATED
15227 enum options { true_value, /*...*/ nulltype } value;
15228
15229 const char* to_string() const;
15230};
15232
15233// M5-Links-to-log ::= ENUMERATED
15235 enum options { ul, dl, both_ul_and_dl, /*...*/ nulltype } value;
15236
15237 const char* to_string() const;
15238};
15240
15241// M5Configuration-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15243 // Extension ::= OPEN TYPE
15244 struct ext_c {
15245 struct types_opts {
15246 enum options { m5_report_amount, nulltype } value;
15247 typedef uint8_t number_type;
15248
15249 const char* to_string() const;
15250 uint8_t to_number() const;
15251 };
15253
15254 // choice methods
15255 types type() const { return types::m5_report_amount; }
15256 SRSASN_CODE pack(bit_ref& bref) const;
15257 SRSASN_CODE unpack(cbit_ref& bref);
15258 void to_json(json_writer& j) const;
15259 // getters
15260 m5_report_amount_e& m5_report_amount() { return c; }
15261 const m5_report_amount_e& m5_report_amount() const { return c; }
15262
15263 private:
15264 m5_report_amount_e c;
15265 };
15266
15267 // members lookup methods
15268 static uint32_t idx_to_id(uint32_t idx);
15269 static bool is_id_valid(const uint32_t& id);
15270 static crit_e get_crit(const uint32_t& id);
15271 static ext_c get_ext(const uint32_t& id);
15272 static presence_e get_presence(const uint32_t& id);
15273};
15274
15275// M5period ::= ENUMERATED
15277 enum options { ms1024, ms2048, ms5120, ms10240, min1, /*...*/ nulltype } value;
15278 typedef uint16_t number_type;
15279
15280 const char* to_string() const;
15281 uint16_t to_number() const;
15282};
15284
15285// M6-Links-to-log ::= ENUMERATED
15287 enum options { ul, dl, both_ul_and_dl, /*...*/ nulltype } value;
15288
15289 const char* to_string() const;
15290};
15292
15293// M6Configuration-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15295 // Extension ::= OPEN TYPE
15296 struct ext_c {
15297 struct types_opts {
15298 enum options { m6_report_amount, nulltype } value;
15299 typedef uint8_t number_type;
15300
15301 const char* to_string() const;
15302 uint8_t to_number() const;
15303 };
15305
15306 // choice methods
15307 types type() const { return types::m6_report_amount; }
15308 SRSASN_CODE pack(bit_ref& bref) const;
15309 SRSASN_CODE unpack(cbit_ref& bref);
15310 void to_json(json_writer& j) const;
15311 // getters
15312 m6_report_amount_e& m6_report_amount() { return c; }
15313 const m6_report_amount_e& m6_report_amount() const { return c; }
15314
15315 private:
15316 m6_report_amount_e c;
15317 };
15318
15319 // members lookup methods
15320 static uint32_t idx_to_id(uint32_t idx);
15321 static bool is_id_valid(const uint32_t& id);
15322 static crit_e get_crit(const uint32_t& id);
15323 static ext_c get_ext(const uint32_t& id);
15324 static presence_e get_presence(const uint32_t& id);
15325};
15326
15327// M6report-Interval ::= ENUMERATED
15329 enum options {
15330 ms120,
15331 ms240,
15332 ms640,
15333 ms1024,
15334 ms2048,
15335 ms5120,
15336 ms10240,
15337 ms20480,
15338 ms40960,
15339 min1,
15340 min6,
15341 min12,
15342 min30,
15343 // ...
15344 ms480,
15345 nulltype
15346 } value;
15347 typedef uint16_t number_type;
15348
15349 const char* to_string() const;
15350 uint16_t to_number() const;
15351};
15353
15354// M7-Links-to-log ::= ENUMERATED
15356 enum options { dl, /*...*/ nulltype } value;
15357
15358 const char* to_string() const;
15359};
15361
15362// M7Configuration-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15364 // Extension ::= OPEN TYPE
15365 struct ext_c {
15366 struct types_opts {
15367 enum options { m7_report_amount, nulltype } value;
15368 typedef uint8_t number_type;
15369
15370 const char* to_string() const;
15371 uint8_t to_number() const;
15372 };
15374
15375 // choice methods
15376 types type() const { return types::m7_report_amount; }
15377 SRSASN_CODE pack(bit_ref& bref) const;
15378 SRSASN_CODE unpack(cbit_ref& bref);
15379 void to_json(json_writer& j) const;
15380 // getters
15381 m7_report_amount_e& m7_report_amount() { return c; }
15382 const m7_report_amount_e& m7_report_amount() const { return c; }
15383
15384 private:
15385 m7_report_amount_e c;
15386 };
15387
15388 // members lookup methods
15389 static uint32_t idx_to_id(uint32_t idx);
15390 static bool is_id_valid(const uint32_t& id);
15391 static crit_e get_crit(const uint32_t& id);
15392 static ext_c get_ext(const uint32_t& id);
15393 static presence_e get_presence(const uint32_t& id);
15394};
15395
15396// MRB-ProgressInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
15397using mrb_progress_info_ext_ies_o = protocol_ies_empty_o;
15398
15399// MeasuredResultsValue ::= CHOICE
15401 struct types_opts {
15402 enum options { ul_angle_of_arrival, ul_srs_rsrp, ul_rtoa, gnb_rx_tx_time_diff, choice_ext, nulltype } value;
15403
15404 const char* to_string() const;
15405 };
15407
15408 // choice methods
15409 measured_results_value_c() = default;
15411 measured_results_value_c& operator=(const measured_results_value_c& other);
15412 ~measured_results_value_c() { destroy_(); }
15413 void set(types::options e = types::nulltype);
15414 types type() const { return type_; }
15415 SRSASN_CODE pack(bit_ref& bref) const;
15416 SRSASN_CODE unpack(cbit_ref& bref);
15417 void to_json(json_writer& j) const;
15418 // getters
15419 ul_ao_a_s& ul_angle_of_arrival()
15420 {
15421 assert_choice_type(types::ul_angle_of_arrival, type_, "MeasuredResultsValue");
15422 return c.get<ul_ao_a_s>();
15423 }
15424 uint8_t& ul_srs_rsrp()
15425 {
15426 assert_choice_type(types::ul_srs_rsrp, type_, "MeasuredResultsValue");
15427 return c.get<uint8_t>();
15428 }
15429 ul_rtoa_meas_s& ul_rtoa()
15430 {
15431 assert_choice_type(types::ul_rtoa, type_, "MeasuredResultsValue");
15432 return c.get<ul_rtoa_meas_s>();
15433 }
15434 gnb_rx_tx_time_diff_s& gnb_rx_tx_time_diff()
15435 {
15436 assert_choice_type(types::gnb_rx_tx_time_diff, type_, "MeasuredResultsValue");
15437 return c.get<gnb_rx_tx_time_diff_s>();
15438 }
15439 protocol_ie_single_container_s<measured_results_value_ext_ies_o>& choice_ext()
15440 {
15441 assert_choice_type(types::choice_ext, type_, "MeasuredResultsValue");
15442 return c.get<protocol_ie_single_container_s<measured_results_value_ext_ies_o>>();
15443 }
15444 const ul_ao_a_s& ul_angle_of_arrival() const
15445 {
15446 assert_choice_type(types::ul_angle_of_arrival, type_, "MeasuredResultsValue");
15447 return c.get<ul_ao_a_s>();
15448 }
15449 const uint8_t& ul_srs_rsrp() const
15450 {
15451 assert_choice_type(types::ul_srs_rsrp, type_, "MeasuredResultsValue");
15452 return c.get<uint8_t>();
15453 }
15454 const ul_rtoa_meas_s& ul_rtoa() const
15455 {
15456 assert_choice_type(types::ul_rtoa, type_, "MeasuredResultsValue");
15457 return c.get<ul_rtoa_meas_s>();
15458 }
15459 const gnb_rx_tx_time_diff_s& gnb_rx_tx_time_diff() const
15460 {
15461 assert_choice_type(types::gnb_rx_tx_time_diff, type_, "MeasuredResultsValue");
15462 return c.get<gnb_rx_tx_time_diff_s>();
15463 }
15464 const protocol_ie_single_container_s<measured_results_value_ext_ies_o>& choice_ext() const
15465 {
15466 assert_choice_type(types::choice_ext, type_, "MeasuredResultsValue");
15467 return c.get<protocol_ie_single_container_s<measured_results_value_ext_ies_o>>();
15468 }
15469 ul_ao_a_s& set_ul_angle_of_arrival();
15470 uint8_t& set_ul_srs_rsrp();
15471 ul_rtoa_meas_s& set_ul_rtoa();
15472 gnb_rx_tx_time_diff_s& set_gnb_rx_tx_time_diff();
15473 protocol_ie_single_container_s<measured_results_value_ext_ies_o>& set_choice_ext();
15474
15475private:
15476 types type_;
15477 choice_buffer_t<gnb_rx_tx_time_diff_s,
15478 protocol_ie_single_container_s<measured_results_value_ext_ies_o>,
15479 ul_ao_a_s,
15480 ul_rtoa_meas_s>
15481 c;
15482
15483 void destroy_();
15484};
15485
15486using meas_beam_info_ext_ies_container = protocol_ext_container_empty_l;
15487
15488// MeasurementBeamInfo ::= SEQUENCE
15490 bool prs_res_id_present = false;
15491 bool prs_res_set_id_present = false;
15492 bool ssb_idx_present = false;
15493 bool ie_exts_present = false;
15494 uint8_t prs_res_id = 0;
15495 uint8_t prs_res_set_id = 0;
15496 uint8_t ssb_idx = 0;
15498
15499 // sequence methods
15500 SRSASN_CODE pack(bit_ref& bref) const;
15501 SRSASN_CODE unpack(cbit_ref& bref);
15502 void to_json(json_writer& j) const;
15503};
15504
15505// NR-Mode-Info ::= CHOICE
15507 struct types_opts {
15508 enum options { fdd, tdd, choice_ext, nulltype } value;
15509
15510 const char* to_string() const;
15511 };
15513
15514 // choice methods
15515 nr_mode_info_c() = default;
15516 nr_mode_info_c(const nr_mode_info_c& other);
15517 nr_mode_info_c& operator=(const nr_mode_info_c& other);
15518 ~nr_mode_info_c() { destroy_(); }
15519 void set(types::options e = types::nulltype);
15520 types type() const { return type_; }
15521 SRSASN_CODE pack(bit_ref& bref) const;
15522 SRSASN_CODE unpack(cbit_ref& bref);
15523 void to_json(json_writer& j) const;
15524 // getters
15525 fdd_info_s& fdd()
15526 {
15527 assert_choice_type(types::fdd, type_, "NR-Mode-Info");
15528 return c.get<fdd_info_s>();
15529 }
15530 tdd_info_s& tdd()
15531 {
15532 assert_choice_type(types::tdd, type_, "NR-Mode-Info");
15533 return c.get<tdd_info_s>();
15534 }
15535 protocol_ie_single_container_s<nr_mode_info_ext_ies_o>& choice_ext()
15536 {
15537 assert_choice_type(types::choice_ext, type_, "NR-Mode-Info");
15538 return c.get<protocol_ie_single_container_s<nr_mode_info_ext_ies_o>>();
15539 }
15540 const fdd_info_s& fdd() const
15541 {
15542 assert_choice_type(types::fdd, type_, "NR-Mode-Info");
15543 return c.get<fdd_info_s>();
15544 }
15545 const tdd_info_s& tdd() const
15546 {
15547 assert_choice_type(types::tdd, type_, "NR-Mode-Info");
15548 return c.get<tdd_info_s>();
15549 }
15550 const protocol_ie_single_container_s<nr_mode_info_ext_ies_o>& choice_ext() const
15551 {
15552 assert_choice_type(types::choice_ext, type_, "NR-Mode-Info");
15553 return c.get<protocol_ie_single_container_s<nr_mode_info_ext_ies_o>>();
15554 }
15555 fdd_info_s& set_fdd();
15556 tdd_info_s& set_tdd();
15557 protocol_ie_single_container_s<nr_mode_info_ext_ies_o>& set_choice_ext();
15558
15559private:
15560 types type_;
15561 choice_buffer_t<fdd_info_s, protocol_ie_single_container_s<nr_mode_info_ext_ies_o>, tdd_info_s> c;
15562
15563 void destroy_();
15564};
15565
15566using pc5_qos_params_ext_ies_container = protocol_ext_container_empty_l;
15567
15568// PC5QoSParameters ::= SEQUENCE
15570 bool ext = false;
15571 bool pc5_qos_flow_bit_rates_present = false;
15572 bool ie_exts_present = false;
15573 pc5_qos_characteristics_c pc5_qos_characteristics;
15574 pc5_flow_bit_rates_s pc5_qos_flow_bit_rates;
15576 // ...
15577
15578 // sequence methods
15579 SRSASN_CODE pack(bit_ref& bref) const;
15580 SRSASN_CODE unpack(cbit_ref& bref);
15581 void to_json(json_writer& j) const;
15582};
15583
15584// PDCMeasuredResults-Value-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
15586
15587// PEISubgroupingSupportIndication ::= ENUMERATED
15589 enum options { true_value, /*...*/ nulltype } value;
15590
15591 const char* to_string() const;
15592};
15594
15595// PRSTransmissionOffIndication-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
15597
15598// PRSTransmissionOffPerResource ::= SEQUENCE (SIZE (1..8)) OF PRSTransmissionOffPerResource-Item
15600
15601// PRSTransmissionOffPerResourceSet ::= SEQUENCE (SIZE (1..8)) OF PRSTransmissionOffPerResourceSet-Item
15603
15604// PathlossReferenceInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15606
15607// PathlossReferenceSignal ::= CHOICE
15609 struct types_opts {
15610 enum options { ssb, dl_prs, choice_ext, nulltype } value;
15611
15612 const char* to_string() const;
15613 };
15615
15616 // choice methods
15617 pathloss_ref_sig_c() = default;
15619 pathloss_ref_sig_c& operator=(const pathloss_ref_sig_c& other);
15620 ~pathloss_ref_sig_c() { destroy_(); }
15621 void set(types::options e = types::nulltype);
15622 types type() const { return type_; }
15623 SRSASN_CODE pack(bit_ref& bref) const;
15624 SRSASN_CODE unpack(cbit_ref& bref);
15625 void to_json(json_writer& j) const;
15626 // getters
15627 ssb_s& ssb()
15628 {
15629 assert_choice_type(types::ssb, type_, "PathlossReferenceSignal");
15630 return c.get<ssb_s>();
15631 }
15632 dl_prs_s& dl_prs()
15633 {
15634 assert_choice_type(types::dl_prs, type_, "PathlossReferenceSignal");
15635 return c.get<dl_prs_s>();
15636 }
15637 protocol_ie_single_container_s<pathloss_ref_sig_ext_ies_o>& choice_ext()
15638 {
15639 assert_choice_type(types::choice_ext, type_, "PathlossReferenceSignal");
15640 return c.get<protocol_ie_single_container_s<pathloss_ref_sig_ext_ies_o>>();
15641 }
15642 const ssb_s& ssb() const
15643 {
15644 assert_choice_type(types::ssb, type_, "PathlossReferenceSignal");
15645 return c.get<ssb_s>();
15646 }
15647 const dl_prs_s& dl_prs() const
15648 {
15649 assert_choice_type(types::dl_prs, type_, "PathlossReferenceSignal");
15650 return c.get<dl_prs_s>();
15651 }
15652 const protocol_ie_single_container_s<pathloss_ref_sig_ext_ies_o>& choice_ext() const
15653 {
15654 assert_choice_type(types::choice_ext, type_, "PathlossReferenceSignal");
15655 return c.get<protocol_ie_single_container_s<pathloss_ref_sig_ext_ies_o>>();
15656 }
15657 ssb_s& set_ssb();
15658 dl_prs_s& set_dl_prs();
15659 protocol_ie_single_container_s<pathloss_ref_sig_ext_ies_o>& set_choice_ext();
15660
15661private:
15662 types type_;
15663 choice_buffer_t<dl_prs_s, protocol_ie_single_container_s<pathloss_ref_sig_ext_ies_o>, ssb_s> c;
15664
15665 void destroy_();
15666};
15667
15668using periodicity_list_item_ext_ies_container = protocol_ext_container_empty_l;
15669
15670// PeriodicityList-Item ::= SEQUENCE
15672 bool ie_exts_present = false;
15673 periodicity_srs_e periodicity_srs;
15675
15676 // sequence methods
15677 SRSASN_CODE pack(bit_ref& bref) const;
15678 SRSASN_CODE unpack(cbit_ref& bref);
15679 void to_json(json_writer& j) const;
15680};
15681
15682// PosMeasurementResultItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15684 // Extension ::= OPEN TYPE
15685 struct ext_c {
15686 struct types_opts {
15687 enum options { arp_id, srs_restype, lo_s_n_lo_si_nformation, nulltype } value;
15688 typedef uint8_t number_type;
15689
15690 const char* to_string() const;
15691 uint8_t to_number() const;
15692 };
15694
15695 // choice methods
15696 ext_c() = default;
15697 void set(types::options e = types::nulltype);
15698 types type() const { return type_; }
15699 SRSASN_CODE pack(bit_ref& bref) const;
15700 SRSASN_CODE unpack(cbit_ref& bref);
15701 void to_json(json_writer& j) const;
15702 // getters
15703 uint8_t& arp_id();
15704 srs_restype_s& srs_restype();
15705 lo_s_n_lo_si_nformation_c& lo_s_n_lo_si_nformation();
15706 const uint8_t& arp_id() const;
15707 const srs_restype_s& srs_restype() const;
15708 const lo_s_n_lo_si_nformation_c& lo_s_n_lo_si_nformation() const;
15709
15710 private:
15711 types type_;
15713 };
15714
15715 // members lookup methods
15716 static uint32_t idx_to_id(uint32_t idx);
15717 static bool is_id_valid(const uint32_t& id);
15718 static crit_e get_crit(const uint32_t& id);
15719 static ext_c get_ext(const uint32_t& id);
15720 static presence_e get_presence(const uint32_t& id);
15721};
15722
15723// QoEMetrics-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15724using qo_e_metrics_ext_ies_o = protocol_ext_empty_o;
15725
15726using requested_dl_prs_res_set_item_ext_ies_container = protocol_ext_container_empty_l;
15727
15728// RequestedDLPRSResourceSet-Item ::= SEQUENCE
15731 enum options { n2, n4, n6, n12, /*...*/ nulltype } value;
15732 typedef uint8_t number_type;
15733
15734 const char* to_string() const;
15735 uint8_t to_number() const;
15736 };
15739 enum options {
15740 n4,
15741 n5,
15742 n8,
15743 n10,
15744 n16,
15745 n20,
15746 n32,
15747 n40,
15748 n64,
15749 n80,
15750 n160,
15751 n320,
15752 n640,
15753 n1280,
15754 n2560,
15755 n5120,
15756 n10240,
15757 n20480,
15758 n40960,
15759 n81920,
15760 // ...
15761 nulltype
15762 } value;
15763 typedef uint32_t number_type;
15764
15765 const char* to_string() const;
15766 uint32_t to_number() const;
15767 };
15770 enum options { rf1, rf2, rf4, rf6, rf8, rf16, rf32, /*...*/ nulltype } value;
15771 typedef uint8_t number_type;
15772
15773 const char* to_string() const;
15774 uint8_t to_number() const;
15775 };
15778 enum options { n2, n4, n6, n12, /*...*/ nulltype } value;
15779 typedef uint8_t number_type;
15780
15781 const char* to_string() const;
15782 uint8_t to_number() const;
15783 };
15785
15786 // member variables
15787 bool ext = false;
15788 bool comb_size_present = false;
15789 bool res_set_periodicity_present = false;
15790 bool res_repeat_factor_present = false;
15791 bool res_numof_symbols_present = false;
15792 bool res_set_start_time_and_dur_present = false;
15793 bool ie_exts_present = false;
15794 uint8_t pr_sbw = 1;
15795 comb_size_e_ comb_size;
15796 res_set_periodicity_e_ res_set_periodicity;
15797 res_repeat_factor_e_ res_repeat_factor;
15798 res_numof_symbols_e_ res_numof_symbols;
15799 requested_dl_prs_res_list_l requested_dl_prs_res_list;
15800 start_time_and_dur_s res_set_start_time_and_dur;
15802 // ...
15803
15804 // sequence methods
15805 SRSASN_CODE pack(bit_ref& bref) const;
15806 SRSASN_CODE unpack(cbit_ref& bref);
15807 void to_json(json_writer& j) const;
15808};
15809
15811
15812// SCS-SpecificCarrier ::= SEQUENCE
15815 enum options { khz15, khz30, khz60, khz120, /*...*/ khz480, khz960, nulltype } value;
15816 typedef uint16_t number_type;
15817
15818 const char* to_string() const;
15819 uint16_t to_number() const;
15820 };
15822
15823 // member variables
15824 bool ie_exts_present = false;
15825 uint16_t offset_to_carrier = 0;
15826 subcarrier_spacing_e_ subcarrier_spacing;
15827 uint16_t carrier_bw = 1;
15829
15830 // sequence methods
15831 SRSASN_CODE pack(bit_ref& bref) const;
15832 SRSASN_CODE unpack(cbit_ref& bref);
15833 void to_json(json_writer& j) const;
15834};
15835
15836// SDTBearerType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
15838
15839// Served-Cell-Information-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15841 // Extension ::= OPEN TYPE
15842 struct ext_c {
15843 struct types_opts {
15844 enum options {
15845 ranac,
15846 extended_served_plmns_list,
15847 cell_direction,
15848 bplmn_id_info_list,
15849 cell_type,
15850 cfg_tac_ind,
15851 aggressor_gnb_set_id,
15852 victim_gnb_set_id,
15853 iab_info_iab_du,
15854 ssb_positions_in_burst,
15855 nr_prach_cfg,
15856 sfn_offset,
15857 npn_broadcast_info,
15858 supported_mbs_fsa_id_list,
15859 redcap_bcast_info,
15860 nulltype
15861 } value;
15862 typedef uint8_t number_type;
15863
15864 const char* to_string() const;
15865 uint8_t to_number() const;
15866 };
15868
15869 // choice methods
15870 ext_c() = default;
15871 void set(types::options e = types::nulltype);
15872 types type() const { return type_; }
15873 SRSASN_CODE pack(bit_ref& bref) const;
15874 SRSASN_CODE unpack(cbit_ref& bref);
15875 void to_json(json_writer& j) const;
15876 // getters
15877 uint16_t& ranac();
15878 extended_served_plmns_list_l& extended_served_plmns_list();
15879 cell_direction_e& cell_direction();
15880 bplmn_id_info_list_l& bplmn_id_info_list();
15881 cell_type_s& cell_type();
15882 cfg_tac_ind_e& cfg_tac_ind();
15883 aggressor_gnb_set_id_s& aggressor_gnb_set_id();
15884 victim_gnb_set_id_s& victim_gnb_set_id();
15885 iab_info_iab_du_s& iab_info_iab_du();
15886 ssb_positions_in_burst_c& ssb_positions_in_burst();
15887 nr_prach_cfg_s& nr_prach_cfg();
15888 sfn_offset_s& sfn_offset();
15889 npn_broadcast_info_c& npn_broadcast_info();
15890 supported_mbs_fsa_id_list_l& supported_mbs_fsa_id_list();
15891 fixed_bitstring<8, false, true>& redcap_bcast_info();
15892 const uint16_t& ranac() const;
15893 const extended_served_plmns_list_l& extended_served_plmns_list() const;
15894 const cell_direction_e& cell_direction() const;
15895 const bplmn_id_info_list_l& bplmn_id_info_list() const;
15896 const cell_type_s& cell_type() const;
15897 const cfg_tac_ind_e& cfg_tac_ind() const;
15898 const aggressor_gnb_set_id_s& aggressor_gnb_set_id() const;
15899 const victim_gnb_set_id_s& victim_gnb_set_id() const;
15900 const iab_info_iab_du_s& iab_info_iab_du() const;
15901 const ssb_positions_in_burst_c& ssb_positions_in_burst() const;
15902 const nr_prach_cfg_s& nr_prach_cfg() const;
15903 const sfn_offset_s& sfn_offset() const;
15904 const npn_broadcast_info_c& npn_broadcast_info() const;
15905 const supported_mbs_fsa_id_list_l& supported_mbs_fsa_id_list() const;
15906 const fixed_bitstring<8, false, true>& redcap_bcast_info() const;
15907
15908 private:
15909 types type_;
15911 };
15912
15913 // members lookup methods
15914 static uint32_t idx_to_id(uint32_t idx);
15915 static bool is_id_valid(const uint32_t& id);
15916 static crit_e get_crit(const uint32_t& id);
15917 static ext_c get_ext(const uint32_t& id);
15918 static presence_e get_presence(const uint32_t& id);
15919};
15920
15921// ServedPLMNs-List ::= SEQUENCE (SIZE (1..6)) OF ServedPLMNs-Item
15922using served_plmns_list_l = dyn_array<served_plmns_item_s>;
15923
15924// SpatialRelationInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15925using spatial_relation_info_ext_ies_o = protocol_ext_empty_o;
15926
15927using spatial_relation_per_srs_res_ext_ies_container = protocol_ext_container_empty_l;
15928
15929// SpatialRelationPerSRSResource ::= SEQUENCE
15931 bool ext = false;
15932 bool ie_exts_present = false;
15933 spatial_relation_per_srs_res_list_l spatial_relation_per_srs_res_list;
15935 // ...
15936
15937 // sequence methods
15938 SRSASN_CODE pack(bit_ref& bref) const;
15939 SRSASN_CODE unpack(cbit_ref& bref);
15940 void to_json(json_writer& j) const;
15941};
15942
15943// SpatialRelationforResourceID ::= SEQUENCE (SIZE (1..64)) OF SpatialRelationforResourceIDItem
15945
15946// TRPInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15948
15949// TRPInformationTypeResponseList ::= SEQUENCE (SIZE (1..64)) OF TRPInformationTypeResponseItem
15951
15953
15954// TimeStamp ::= SEQUENCE
15956 bool meas_time_present = false;
15957 bool ie_ext_present = false;
15958 uint16_t sys_frame_num = 0;
15959 time_stamp_slot_idx_c slot_idx;
15962
15963 // sequence methods
15964 SRSASN_CODE pack(bit_ref& bref) const;
15965 SRSASN_CODE unpack(cbit_ref& bref);
15966 void to_json(json_writer& j) const;
15967};
15968
15970
15971// UACType-Item ::= SEQUENCE
15973 bool ie_exts_present = false;
15974 uint8_t uac_reduction_ind = 0;
15975 uac_category_type_c uac_category_type;
15977
15978 // sequence methods
15979 SRSASN_CODE pack(bit_ref& bref) const;
15980 SRSASN_CODE unpack(cbit_ref& bref);
15981 void to_json(json_writer& j) const;
15982};
15983
15984// UE-associatedLogicalF1-ConnectionItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
15986
15987// UEIdentityIndexValueChoice-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
15989
15990// CellULConfigured ::= ENUMERATED
15992 enum options { none, ul, sul, ul_and_sul, /*...*/ nulltype } value;
15993 typedef uint8_t number_type;
15994
15995 const char* to_string() const;
15996 uint8_t to_number() const;
15997};
15999
16000// DuplicationIndication ::= ENUMERATED
16002 enum options { true_value, /*...*/ false_value, nulltype } value;
16003
16004 const char* to_string() const;
16005};
16007
16008// GNB-CU-TNL-Association-Failed-To-Setup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16010
16011// GNB-CU-TNL-Association-Setup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16013
16014// GNB-CU-TNL-Association-To-Add-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16016
16017// GNB-CU-TNL-Association-To-Remove-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16019 // Extension ::= OPEN TYPE
16020 struct ext_c {
16021 struct types_opts {
16022 enum options { tnl_assoc_transport_layer_address_gnb_du, nulltype } value;
16023
16024 const char* to_string() const;
16025 };
16027
16028 // choice methods
16029 types type() const { return types::tnl_assoc_transport_layer_address_gnb_du; }
16030 SRSASN_CODE pack(bit_ref& bref) const;
16031 SRSASN_CODE unpack(cbit_ref& bref);
16032 void to_json(json_writer& j) const;
16033 // getters
16034 cp_transport_layer_address_c& tnl_assoc_transport_layer_address_gnb_du() { return c; }
16035 const cp_transport_layer_address_c& tnl_assoc_transport_layer_address_gnb_du() const { return c; }
16036
16037 private:
16038 cp_transport_layer_address_c c;
16039 };
16040
16041 // members lookup methods
16042 static uint32_t idx_to_id(uint32_t idx);
16043 static bool is_id_valid(const uint32_t& id);
16044 static crit_e get_crit(const uint32_t& id);
16045 static ext_c get_ext(const uint32_t& id);
16046 static presence_e get_presence(const uint32_t& id);
16047};
16048
16049// GNB-CU-TNL-Association-To-Update-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16050using gnb_cu_tnl_assoc_to_upd_item_ext_ies_o = protocol_ext_empty_o;
16051
16052// GNB-DU-Served-Cells-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16053using gnb_du_served_cells_item_ext_ies_o = protocol_ext_empty_o;
16054
16056 bool sib12_msg_present = false;
16057 bool sib13_msg_present = false;
16058 bool sib14_msg_present = false;
16059 bool sib10_msg_present = false;
16060 bool sib17_msg_present = false;
16061 bool sib20_msg_present = false;
16062 bool sib15_msg_present = false;
16063 unbounded_octstring<true> sib12_msg;
16064 unbounded_octstring<true> sib13_msg;
16065 unbounded_octstring<true> sib14_msg;
16066 unbounded_octstring<true> sib10_msg;
16067 unbounded_octstring<true> sib17_msg;
16068 unbounded_octstring<true> sib20_msg;
16069 unbounded_octstring<true> sib15_msg;
16070
16071 // sequence methods
16072 SRSASN_CODE pack(bit_ref& bref) const;
16073 SRSASN_CODE unpack(cbit_ref& bref);
16074 void to_json(json_writer& j) const;
16075};
16076
16077// GNB-DU-System-Information ::= SEQUENCE
16079 bool ext = false;
16080 bool ie_exts_present = false;
16084 // ...
16085
16086 // sequence methods
16087 SRSASN_CODE pack(bit_ref& bref) const;
16088 SRSASN_CODE unpack(cbit_ref& bref);
16089 void to_json(json_writer& j) const;
16090};
16091
16092// GNB-DU-TNL-Association-To-Remove-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16094
16095// GTPTLAs ::= SEQUENCE (SIZE (1..16)) OF GTPTLA-Item
16097
16098// IAB-Allocated-TNL-Address-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16100
16101// IAB-Congestion-Indication-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16103
16105
16106// IAB-MT-Cell-NA-Resource-Configuration-FDD-Info ::= SEQUENCE
16108 bool ext = false;
16109 bool ul_freq_info_present = false;
16110 bool ul_tx_bw_present = false;
16111 bool dl_freq_info_present = false;
16112 bool dl_tx_bw_present = false;
16113 bool ie_exts_present = false;
16114 gnb_du_cell_res_cfg_s gnb_du_cell_na_res_cfg_fdd_ul;
16115 gnb_du_cell_res_cfg_s gnb_du_cell_na_res_cfg_fdd_dl;
16116 nr_freq_info_s ul_freq_info;
16117 tx_bw_s ul_tx_bw;
16118 nr_carrier_list_l ul_nr_carrier_list;
16119 nr_freq_info_s dl_freq_info;
16120 tx_bw_s dl_tx_bw;
16121 nr_carrier_list_l dl_nr_carrier_list;
16123 // ...
16124
16125 // sequence methods
16126 SRSASN_CODE pack(bit_ref& bref) const;
16127 SRSASN_CODE unpack(cbit_ref& bref);
16128 void to_json(json_writer& j) const;
16129};
16130
16131// IAB-MT-Cell-NA-Resource-Configuration-Mode-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
16133
16135
16136// IAB-MT-Cell-NA-Resource-Configuration-TDD-Info ::= SEQUENCE
16138 bool ext = false;
16139 bool nr_freq_info_present = false;
16140 bool tx_bw_present = false;
16141 bool ie_exts_present = false;
16142 gnb_du_cell_res_cfg_s gnb_du_cell_na_resourc_cfg_tdd;
16143 nr_freq_info_s nr_freq_info;
16144 tx_bw_s tx_bw;
16145 nr_carrier_list_l nr_carrier_list;
16147 // ...
16148
16149 // sequence methods
16150 SRSASN_CODE pack(bit_ref& bref) const;
16151 SRSASN_CODE unpack(cbit_ref& bref);
16152 void to_json(json_writer& j) const;
16153};
16154
16155// IAB-TNL-Addresses-To-Remove-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16157
16158// IABTNLAddress-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16160
16161// IABTNLAddressUsage ::= ENUMERATED
16163 enum options { f1_c, f1_u, non_f1, /*...*/ nulltype } value;
16164
16165 const char* to_string() const;
16166};
16168
16169// IgnorePRACHConfiguration ::= ENUMERATED
16171 enum options { true_value, /*...*/ nulltype } value;
16172
16173 const char* to_string() const;
16174};
16176
16177// M2Configuration ::= ENUMERATED
16179 enum options { true_value, /*...*/ nulltype } value;
16180
16181 const char* to_string() const;
16182};
16184
16185// M5Configuration ::= SEQUENCE
16186struct m5_cfg_s {
16187 bool ext = false;
16188 m5period_e m5period;
16189 m5_links_to_log_e m5_links_to_log;
16191 // ...
16192
16193 // sequence methods
16194 SRSASN_CODE pack(bit_ref& bref) const;
16195 SRSASN_CODE unpack(cbit_ref& bref);
16196 void to_json(json_writer& j) const;
16197};
16198
16199// M6Configuration ::= SEQUENCE
16200struct m6_cfg_s {
16201 bool ext = false;
16202 m6report_interv_e m6report_interv;
16203 m6_links_to_log_e m6_links_to_log;
16205 // ...
16206
16207 // sequence methods
16208 SRSASN_CODE pack(bit_ref& bref) const;
16209 SRSASN_CODE unpack(cbit_ref& bref);
16210 void to_json(json_writer& j) const;
16211};
16212
16213// M7Configuration ::= SEQUENCE
16214struct m7_cfg_s {
16215 bool ext = false;
16216 uint8_t m7period = 1;
16217 m7_links_to_log_e m7_links_to_log;
16219 // ...
16220
16221 // sequence methods
16222 SRSASN_CODE pack(bit_ref& bref) const;
16223 SRSASN_CODE unpack(cbit_ref& bref);
16224 void to_json(json_writer& j) const;
16225};
16226
16227// MBSPTPRetransmissionTunnelRequired ::= ENUMERATED
16229 enum options { true_value, /*...*/ nulltype } value;
16230
16231 const char* to_string() const;
16232};
16234
16235// MC-PagingCell-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16237
16238// MDT-Activation ::= ENUMERATED
16240 enum options { immediate_mdt_only, immediate_mdt_and_trace, /*...*/ nulltype } value;
16241
16242 const char* to_string() const;
16243};
16245
16246// MDTConfiguration-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16248
16249// MRB-ProgressInformation ::= CHOICE
16251 struct types_opts {
16252 enum options { pdcp_sn12, pdcp_sn18, choice_ext, nulltype } value;
16253 typedef uint8_t number_type;
16254
16255 const char* to_string() const;
16256 uint8_t to_number() const;
16257 };
16259
16260 // choice methods
16261 mrb_progress_info_c() = default;
16263 mrb_progress_info_c& operator=(const mrb_progress_info_c& other);
16264 ~mrb_progress_info_c() { destroy_(); }
16265 void set(types::options e = types::nulltype);
16266 types type() const { return type_; }
16267 SRSASN_CODE pack(bit_ref& bref) const;
16268 SRSASN_CODE unpack(cbit_ref& bref);
16269 void to_json(json_writer& j) const;
16270 // getters
16271 uint16_t& pdcp_sn12()
16272 {
16273 assert_choice_type(types::pdcp_sn12, type_, "MRB-ProgressInformation");
16274 return c.get<uint16_t>();
16275 }
16276 uint32_t& pdcp_sn18()
16277 {
16278 assert_choice_type(types::pdcp_sn18, type_, "MRB-ProgressInformation");
16279 return c.get<uint32_t>();
16280 }
16281 protocol_ie_single_container_s<mrb_progress_info_ext_ies_o>& choice_ext()
16282 {
16283 assert_choice_type(types::choice_ext, type_, "MRB-ProgressInformation");
16284 return c.get<protocol_ie_single_container_s<mrb_progress_info_ext_ies_o>>();
16285 }
16286 const uint16_t& pdcp_sn12() const
16287 {
16288 assert_choice_type(types::pdcp_sn12, type_, "MRB-ProgressInformation");
16289 return c.get<uint16_t>();
16290 }
16291 const uint32_t& pdcp_sn18() const
16292 {
16293 assert_choice_type(types::pdcp_sn18, type_, "MRB-ProgressInformation");
16294 return c.get<uint32_t>();
16295 }
16296 const protocol_ie_single_container_s<mrb_progress_info_ext_ies_o>& choice_ext() const
16297 {
16298 assert_choice_type(types::choice_ext, type_, "MRB-ProgressInformation");
16299 return c.get<protocol_ie_single_container_s<mrb_progress_info_ext_ies_o>>();
16300 }
16301 uint16_t& set_pdcp_sn12();
16302 uint32_t& set_pdcp_sn18();
16303 protocol_ie_single_container_s<mrb_progress_info_ext_ies_o>& set_choice_ext();
16304
16305private:
16306 types type_;
16307 choice_buffer_t<protocol_ie_single_container_s<mrb_progress_info_ext_ies_o>> c;
16308
16309 void destroy_();
16310};
16311
16312// MulticastF1UContext-FailedToBeSetup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16313using multicast_f1_u_context_failed_to_be_setup_item_ext_ies_o = protocol_ext_empty_o;
16314
16315// MulticastF1UContext-Setup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16316using multicast_f1_u_context_setup_item_ext_ies_o = protocol_ext_empty_o;
16317
16318// MulticastF1UContext-ToBeSetup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16319using multicast_f1_u_context_to_be_setup_item_ext_ies_o = protocol_ext_empty_o;
16320
16321// MulticastMRBs-FailedToBeSetup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16322using multicast_m_rbs_failed_to_be_setup_item_ext_ies_o = protocol_ext_empty_o;
16323
16324// MulticastMRBs-FailedToBeSetupMod-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16325using multicast_m_rbs_failed_to_be_setup_mod_item_ext_ies_o = protocol_ext_empty_o;
16326
16327// MulticastMRBs-FailedtoBeModified-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16328using multicast_m_rbs_failedto_be_modified_item_ext_ies_o = protocol_ext_empty_o;
16329
16330// MulticastMRBs-Modified-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16331using multicast_m_rbs_modified_item_ext_ies_o = protocol_ext_empty_o;
16332
16333// MulticastMRBs-Setup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16334using multicast_m_rbs_setup_item_ext_ies_o = protocol_ext_empty_o;
16335
16336// MulticastMRBs-SetupMod-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16337using multicast_m_rbs_setup_mod_item_ext_ies_o = protocol_ext_empty_o;
16338
16339// MulticastMRBs-ToBeModified-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16340using multicast_m_rbs_to_be_modified_item_ext_ies_o = protocol_ext_empty_o;
16341
16342// MulticastMRBs-ToBeReleased-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16343using multicast_m_rbs_to_be_released_item_ext_ies_o = protocol_ext_empty_o;
16344
16345// MulticastMRBs-ToBeSetup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16346using multicast_m_rbs_to_be_setup_item_ext_ies_o = protocol_ext_empty_o;
16347
16348// MulticastMRBs-ToBeSetupMod-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16349using multicast_m_rbs_to_be_setup_mod_item_ext_ies_o = protocol_ext_empty_o;
16350
16351// NR-CGI-List-For-Restart-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16352using nr_cgi_list_for_restart_item_ext_ies_o = protocol_ext_empty_o;
16353
16354// Neighbour-Cell-Information-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16355using neighbour_cell_info_item_ext_ies_o = protocol_ext_empty_o;
16356
16357// NonUPTrafficType ::= ENUMERATED
16359 enum options { ue_associated, non_ue_associated, non_f1, bap_ctrl_pdu, /*...*/ nulltype } value;
16360 typedef uint8_t number_type;
16361
16362 const char* to_string() const;
16363 uint8_t to_number() const;
16364};
16366
16367// NotificationInformationExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16369
16370// NumberOfTRPRxTEG ::= ENUMERATED
16372 enum options { two, three, four, six, eight, /*...*/ nulltype } value;
16373 typedef uint8_t number_type;
16374
16375 const char* to_string() const;
16376 uint8_t to_number() const;
16377};
16379
16380// NumberOfTRPRxTxTEG ::= ENUMERATED
16382 enum options { wo, three, four, six, eight, /*...*/ nulltype } value;
16383 typedef uint8_t number_type;
16384
16385 const char* to_string() const;
16386 uint8_t to_number() const;
16387};
16389
16390// PC5RLCChannelQoSInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
16392
16393// PDCMeasuredResults-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16395
16396// PDCMeasuredResults-Value ::= CHOICE
16398 struct types_opts {
16399 enum options { pdc_tadv_nr, pdc_rx_tx_time_diff, choice_ext, nulltype } value;
16400
16401 const char* to_string() const;
16402 };
16404
16405 // choice methods
16406 pdc_measured_results_value_c() = default;
16409 ~pdc_measured_results_value_c() { destroy_(); }
16410 void set(types::options e = types::nulltype);
16411 types type() const { return type_; }
16412 SRSASN_CODE pack(bit_ref& bref) const;
16413 SRSASN_CODE unpack(cbit_ref& bref);
16414 void to_json(json_writer& j) const;
16415 // getters
16416 uint16_t& pdc_tadv_nr()
16417 {
16418 assert_choice_type(types::pdc_tadv_nr, type_, "PDCMeasuredResults-Value");
16419 return c.get<uint16_t>();
16420 }
16421 uint16_t& pdc_rx_tx_time_diff()
16422 {
16423 assert_choice_type(types::pdc_rx_tx_time_diff, type_, "PDCMeasuredResults-Value");
16424 return c.get<uint16_t>();
16425 }
16426 protocol_ie_single_container_s<pdc_measured_results_value_ext_ies_o>& choice_ext()
16427 {
16428 assert_choice_type(types::choice_ext, type_, "PDCMeasuredResults-Value");
16429 return c.get<protocol_ie_single_container_s<pdc_measured_results_value_ext_ies_o>>();
16430 }
16431 const uint16_t& pdc_tadv_nr() const
16432 {
16433 assert_choice_type(types::pdc_tadv_nr, type_, "PDCMeasuredResults-Value");
16434 return c.get<uint16_t>();
16435 }
16436 const uint16_t& pdc_rx_tx_time_diff() const
16437 {
16438 assert_choice_type(types::pdc_rx_tx_time_diff, type_, "PDCMeasuredResults-Value");
16439 return c.get<uint16_t>();
16440 }
16441 const protocol_ie_single_container_s<pdc_measured_results_value_ext_ies_o>& choice_ext() const
16442 {
16443 assert_choice_type(types::choice_ext, type_, "PDCMeasuredResults-Value");
16444 return c.get<protocol_ie_single_container_s<pdc_measured_results_value_ext_ies_o>>();
16445 }
16446 uint16_t& set_pdc_tadv_nr();
16447 uint16_t& set_pdc_rx_tx_time_diff();
16448 protocol_ie_single_container_s<pdc_measured_results_value_ext_ies_o>& set_choice_ext();
16449
16450private:
16451 types type_;
16452 choice_buffer_t<protocol_ie_single_container_s<pdc_measured_results_value_ext_ies_o>> c;
16453
16454 void destroy_();
16455};
16456
16457// PDCMeasurementQuantitiesValue ::= ENUMERATED
16459 enum options { nr_pdc_tadv, gnb_rx_tx, /*...*/ nulltype } value;
16460
16461 const char* to_string() const;
16462};
16464
16465// PDCMeasurementQuantitiesValue-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16467
16468// PRSTransmissionOffIndication ::= CHOICE
16470 struct types_opts {
16471 enum options { prs_tx_off_per_trp, prs_tx_off_per_res_set, prs_tx_off_per_res, choice_ext, nulltype } value;
16472
16473 const char* to_string() const;
16474 };
16476
16477 // choice methods
16478 prs_tx_off_ind_c() = default;
16479 prs_tx_off_ind_c(const prs_tx_off_ind_c& other);
16480 prs_tx_off_ind_c& operator=(const prs_tx_off_ind_c& other);
16481 ~prs_tx_off_ind_c() { destroy_(); }
16482 void set(types::options e = types::nulltype);
16483 types type() const { return type_; }
16484 SRSASN_CODE pack(bit_ref& bref) const;
16485 SRSASN_CODE unpack(cbit_ref& bref);
16486 void to_json(json_writer& j) const;
16487 // getters
16488 prs_tx_off_per_res_set_l& prs_tx_off_per_res_set()
16489 {
16490 assert_choice_type(types::prs_tx_off_per_res_set, type_, "PRSTransmissionOffIndication");
16491 return c.get<prs_tx_off_per_res_set_l>();
16492 }
16493 prs_tx_off_per_res_l& prs_tx_off_per_res()
16494 {
16495 assert_choice_type(types::prs_tx_off_per_res, type_, "PRSTransmissionOffIndication");
16496 return c.get<prs_tx_off_per_res_l>();
16497 }
16498 protocol_ie_single_container_s<prs_tx_off_ind_ext_ies_o>& choice_ext()
16499 {
16500 assert_choice_type(types::choice_ext, type_, "PRSTransmissionOffIndication");
16501 return c.get<protocol_ie_single_container_s<prs_tx_off_ind_ext_ies_o>>();
16502 }
16503 const prs_tx_off_per_res_set_l& prs_tx_off_per_res_set() const
16504 {
16505 assert_choice_type(types::prs_tx_off_per_res_set, type_, "PRSTransmissionOffIndication");
16506 return c.get<prs_tx_off_per_res_set_l>();
16507 }
16508 const prs_tx_off_per_res_l& prs_tx_off_per_res() const
16509 {
16510 assert_choice_type(types::prs_tx_off_per_res, type_, "PRSTransmissionOffIndication");
16511 return c.get<prs_tx_off_per_res_l>();
16512 }
16513 const protocol_ie_single_container_s<prs_tx_off_ind_ext_ies_o>& choice_ext() const
16514 {
16515 assert_choice_type(types::choice_ext, type_, "PRSTransmissionOffIndication");
16516 return c.get<protocol_ie_single_container_s<prs_tx_off_ind_ext_ies_o>>();
16517 }
16518 void set_prs_tx_off_per_trp();
16519 prs_tx_off_per_res_set_l& set_prs_tx_off_per_res_set();
16520 prs_tx_off_per_res_l& set_prs_tx_off_per_res();
16521 protocol_ie_single_container_s<prs_tx_off_ind_ext_ies_o>& set_choice_ext();
16522
16523private:
16524 types type_;
16525 choice_buffer_t<protocol_ie_single_container_s<prs_tx_off_ind_ext_ies_o>,
16526 prs_tx_off_per_res_l,
16527 prs_tx_off_per_res_set_l>
16528 c;
16529
16530 void destroy_();
16531};
16532
16533// PRSTransmissionOffInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16534using prs_tx_off_info_ext_ies_o = protocol_ext_empty_o;
16535
16536// PWS-Failed-NR-CGI-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16537using pws_failed_nr_cgi_item_ext_ies_o = protocol_ext_empty_o;
16538
16539// PagingCell-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16541 // Extension ::= OPEN TYPE
16542 struct ext_c {
16543 struct types_opts {
16544 enum options { last_used_cell_ind, pei_subgrouping_support_ind, nulltype } value;
16545
16546 const char* to_string() const;
16547 };
16549
16550 // choice methods
16551 ext_c() = default;
16552 void set(types::options e = types::nulltype);
16553 types type() const { return type_; }
16554 SRSASN_CODE pack(bit_ref& bref) const;
16555 SRSASN_CODE unpack(cbit_ref& bref);
16556 void to_json(json_writer& j) const;
16557 // getters
16558 last_used_cell_ind_e& last_used_cell_ind();
16559 pei_subgrouping_support_ind_e& pei_subgrouping_support_ind();
16560 const last_used_cell_ind_e& last_used_cell_ind() const;
16561 const pei_subgrouping_support_ind_e& pei_subgrouping_support_ind() const;
16562
16563 private:
16564 types type_;
16566 };
16567
16568 // members lookup methods
16569 static uint32_t idx_to_id(uint32_t idx);
16570 static bool is_id_valid(const uint32_t& id);
16571 static crit_e get_crit(const uint32_t& id);
16572 static ext_c get_ext(const uint32_t& id);
16573 static presence_e get_presence(const uint32_t& id);
16574};
16575
16576// PagingDRX ::= ENUMERATED
16578 enum options { v32, v64, v128, v256, /*...*/ nulltype } value;
16579 typedef uint16_t number_type;
16580
16581 const char* to_string() const;
16582 uint16_t to_number() const;
16583};
16585
16587
16588// PathlossReferenceInfo ::= SEQUENCE
16590 bool ie_exts_present = false;
16591 pathloss_ref_sig_c pathloss_ref_sig;
16593
16594 // sequence methods
16595 SRSASN_CODE pack(bit_ref& bref) const;
16596 SRSASN_CODE unpack(cbit_ref& bref);
16597 void to_json(json_writer& j) const;
16598};
16599
16600// PeriodicityList ::= SEQUENCE (SIZE (1..16)) OF PeriodicityList-Item
16602
16604 bool arp_id_present = false;
16605 bool srs_restype_present = false;
16606 bool lo_s_n_lo_si_nformation_present = false;
16607 uint8_t arp_id;
16608 srs_restype_s srs_restype;
16609 lo_s_n_lo_si_nformation_c lo_s_n_lo_si_nformation;
16610
16611 // sequence methods
16612 SRSASN_CODE pack(bit_ref& bref) const;
16613 SRSASN_CODE unpack(cbit_ref& bref);
16614 void to_json(json_writer& j) const;
16615};
16616
16617// PosMeasurementResultItem ::= SEQUENCE
16619 bool meas_quality_present = false;
16620 bool meas_beam_info_present = false;
16621 bool ie_exts_present = false;
16622 measured_results_value_c measured_results_value;
16623 time_stamp_s time_stamp;
16624 trp_meas_quality_s meas_quality;
16625 meas_beam_info_s meas_beam_info;
16627
16628 // sequence methods
16629 SRSASN_CODE pack(bit_ref& bref) const;
16630 SRSASN_CODE unpack(cbit_ref& bref);
16631 void to_json(json_writer& j) const;
16632};
16633
16634// Potential-SpCell-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16636
16637// Protected-EUTRA-Resources-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16639
16640// QoEInformationList-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16642
16644
16645// QoEMetrics ::= SEQUENCE
16647 bool ext = false;
16648 bool ie_exts_present = false;
16649 unbounded_octstring<true> app_layer_buffer_level_list;
16650 unbounded_octstring<true> playout_delay_for_media_startup;
16652 // ...
16653
16654 // sequence methods
16655 SRSASN_CODE pack(bit_ref& bref) const;
16656 SRSASN_CODE unpack(cbit_ref& bref);
16657 void to_json(json_writer& j) const;
16658};
16659
16660// RequestedDLPRSResourceSet-List ::= SEQUENCE (SIZE (1..8)) OF RequestedDLPRSResourceSet-Item
16662
16663// RequestedDLPRSTransmissionCharacteristics-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16665
16666// SCell-FailedtoSetup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16668
16669// SCell-FailedtoSetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16671
16672// SCell-ToBeRemoved-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16674
16675// SCell-ToBeSetup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16677 // Extension ::= OPEN TYPE
16678 struct ext_c {
16679 struct types_opts {
16680 enum options { serving_cell_mo, nulltype } value;
16681 typedef uint8_t number_type;
16682
16683 const char* to_string() const;
16684 uint8_t to_number() const;
16685 };
16687
16688 // choice methods
16689 types type() const { return types::serving_cell_mo; }
16690 SRSASN_CODE pack(bit_ref& bref) const;
16691 SRSASN_CODE unpack(cbit_ref& bref);
16692 void to_json(json_writer& j) const;
16693 // getters
16694 uint8_t& serving_cell_mo() { return c; }
16695 const uint8_t& serving_cell_mo() const { return c; }
16696
16697 private:
16698 uint8_t c;
16699 };
16700
16701 // members lookup methods
16702 static uint32_t idx_to_id(uint32_t idx);
16703 static bool is_id_valid(const uint32_t& id);
16704 static crit_e get_crit(const uint32_t& id);
16705 static ext_c get_ext(const uint32_t& id);
16706 static presence_e get_presence(const uint32_t& id);
16707};
16708
16709// SCell-ToBeSetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16711 // Extension ::= OPEN TYPE
16712 struct ext_c {
16713 struct types_opts {
16714 enum options { serving_cell_mo, nulltype } value;
16715 typedef uint8_t number_type;
16716
16717 const char* to_string() const;
16718 uint8_t to_number() const;
16719 };
16721
16722 // choice methods
16723 types type() const { return types::serving_cell_mo; }
16724 SRSASN_CODE pack(bit_ref& bref) const;
16725 SRSASN_CODE unpack(cbit_ref& bref);
16726 void to_json(json_writer& j) const;
16727 // getters
16728 uint8_t& serving_cell_mo() { return c; }
16729 const uint8_t& serving_cell_mo() const { return c; }
16730
16731 private:
16732 uint8_t c;
16733 };
16734
16735 // members lookup methods
16736 static uint32_t idx_to_id(uint32_t idx);
16737 static bool is_id_valid(const uint32_t& id);
16738 static crit_e get_crit(const uint32_t& id);
16739 static ext_c get_ext(const uint32_t& id);
16740 static presence_e get_presence(const uint32_t& id);
16741};
16742
16743// SDTBearerConfig-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16744using sdt_bearer_cfg_list_item_ext_ies_o = protocol_ext_empty_o;
16745
16746// SDTBearerType ::= CHOICE
16748 struct types_opts {
16749 enum options { srb, drb, choice_ext, nulltype } value;
16750
16751 const char* to_string() const;
16752 };
16754
16755 // choice methods
16756 sdt_bearer_type_c() = default;
16758 sdt_bearer_type_c& operator=(const sdt_bearer_type_c& other);
16759 ~sdt_bearer_type_c() { destroy_(); }
16760 void set(types::options e = types::nulltype);
16761 types type() const { return type_; }
16762 SRSASN_CODE pack(bit_ref& bref) const;
16763 SRSASN_CODE unpack(cbit_ref& bref);
16764 void to_json(json_writer& j) const;
16765 // getters
16766 uint8_t& srb()
16767 {
16768 assert_choice_type(types::srb, type_, "SDTBearerType");
16769 return c.get<uint8_t>();
16770 }
16771 uint8_t& drb()
16772 {
16773 assert_choice_type(types::drb, type_, "SDTBearerType");
16774 return c.get<uint8_t>();
16775 }
16776 protocol_ie_single_container_s<sdt_bearer_type_ext_ies_o>& choice_ext()
16777 {
16778 assert_choice_type(types::choice_ext, type_, "SDTBearerType");
16779 return c.get<protocol_ie_single_container_s<sdt_bearer_type_ext_ies_o>>();
16780 }
16781 const uint8_t& srb() const
16782 {
16783 assert_choice_type(types::srb, type_, "SDTBearerType");
16784 return c.get<uint8_t>();
16785 }
16786 const uint8_t& drb() const
16787 {
16788 assert_choice_type(types::drb, type_, "SDTBearerType");
16789 return c.get<uint8_t>();
16790 }
16791 const protocol_ie_single_container_s<sdt_bearer_type_ext_ies_o>& choice_ext() const
16792 {
16793 assert_choice_type(types::choice_ext, type_, "SDTBearerType");
16794 return c.get<protocol_ie_single_container_s<sdt_bearer_type_ext_ies_o>>();
16795 }
16796 uint8_t& set_srb();
16797 uint8_t& set_drb();
16798 protocol_ie_single_container_s<sdt_bearer_type_ext_ies_o>& set_choice_ext();
16799
16800private:
16801 types type_;
16802 choice_buffer_t<protocol_ie_single_container_s<sdt_bearer_type_ext_ies_o>> c;
16803
16804 void destroy_();
16805};
16806
16807// SLDRBInformation ::= SEQUENCE
16809 bool ext = false;
16810 pc5_qos_params_s sl_drb_qos;
16811 flows_mapped_to_sl_drb_list_l flows_mapped_to_sl_drb_list;
16812 // ...
16813
16814 // sequence methods
16815 SRSASN_CODE pack(bit_ref& bref) const;
16816 SRSASN_CODE unpack(cbit_ref& bref);
16817 void to_json(json_writer& j) const;
16818};
16819
16820// SLDRBs-FailedToBeModified-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16822
16823// SLDRBs-FailedToBeSetup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16825
16826// SLDRBs-FailedToBeSetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16828
16829// SLDRBs-Modified-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16831
16832// SLDRBs-ModifiedConf-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16834
16835// SLDRBs-Required-ToBeModified-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16837
16838// SLDRBs-Required-ToBeReleased-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16840
16841// SLDRBs-Setup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16843
16844// SLDRBs-SetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16846
16847// SLDRBs-ToBeModified-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16849
16850// SLDRBs-ToBeReleased-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16852
16853// SLDRBs-ToBeSetup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16855
16856// SLDRBs-ToBeSetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16858
16859// SLDRXConfigurationIndicator ::= ENUMERATED
16861 enum options { release, /*...*/ nulltype } value;
16862
16863 const char* to_string() const;
16864};
16866
16867// SLDRXCycleLength ::= ENUMERATED
16869 enum options {
16870 ms10,
16871 ms20,
16872 ms32,
16873 ms40,
16874 ms60,
16875 ms64,
16876 ms70,
16877 ms80,
16878 ms128,
16879 ms160,
16880 ms256,
16881 ms320,
16882 ms512,
16883 ms640,
16884 ms1024,
16885 ms1280,
16886 ms2048,
16887 ms2560,
16888 ms5120,
16889 ms10240,
16890 // ...
16891 nulltype
16892 } value;
16893 typedef uint16_t number_type;
16894
16895 const char* to_string() const;
16896 uint16_t to_number() const;
16897};
16899
16900// SLDRXInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
16902
16903// SRBs-FailedToBeSetup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16905
16906// SRBs-FailedToBeSetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16908
16909// SRBs-Modified-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16911
16912// SRBs-Required-ToBeReleased-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16914
16915// SRBs-Setup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16917
16918// SRBs-SetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16920
16921// SRBs-ToBeReleased-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16923
16924// SRBs-ToBeSetup-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16926 // Extension ::= OPEN TYPE
16927 struct ext_c {
16928 struct types_opts {
16929 enum options { add_dupl_ind, sdt_rlc_bearer_cfg, srb_map_info, nulltype } value;
16930
16931 const char* to_string() const;
16932 };
16934
16935 // choice methods
16936 ext_c() = default;
16937 void set(types::options e = types::nulltype);
16938 types type() const { return type_; }
16939 SRSASN_CODE pack(bit_ref& bref) const;
16940 SRSASN_CODE unpack(cbit_ref& bref);
16941 void to_json(json_writer& j) const;
16942 // getters
16943 add_dupl_ind_e& add_dupl_ind();
16944 unbounded_octstring<true>& sdt_rlc_bearer_cfg();
16945 fixed_bitstring<16, false, true>& srb_map_info();
16946 const add_dupl_ind_e& add_dupl_ind() const;
16947 const unbounded_octstring<true>& sdt_rlc_bearer_cfg() const;
16948 const fixed_bitstring<16, false, true>& srb_map_info() const;
16949
16950 private:
16951 types type_;
16953 };
16954
16955 // members lookup methods
16956 static uint32_t idx_to_id(uint32_t idx);
16957 static bool is_id_valid(const uint32_t& id);
16958 static crit_e get_crit(const uint32_t& id);
16959 static ext_c get_ext(const uint32_t& id);
16960 static presence_e get_presence(const uint32_t& id);
16961};
16962
16963// SRBs-ToBeSetupMod-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
16965 // Extension ::= OPEN TYPE
16966 struct ext_c {
16967 struct types_opts {
16968 enum options { add_dupl_ind, srb_map_info, cg_sd_tind_setup, nulltype } value;
16969
16970 const char* to_string() const;
16971 };
16973
16974 // choice methods
16975 ext_c() = default;
16976 void set(types::options e = types::nulltype);
16977 types type() const { return type_; }
16978 SRSASN_CODE pack(bit_ref& bref) const;
16979 SRSASN_CODE unpack(cbit_ref& bref);
16980 void to_json(json_writer& j) const;
16981 // getters
16982 add_dupl_ind_e& add_dupl_ind();
16983 fixed_bitstring<16, false, true>& srb_map_info();
16984 cg_sd_tind_setup_e& cg_sd_tind_setup();
16985 const add_dupl_ind_e& add_dupl_ind() const;
16986 const fixed_bitstring<16, false, true>& srb_map_info() const;
16987 const cg_sd_tind_setup_e& cg_sd_tind_setup() const;
16988
16989 private:
16990 types type_;
16992 };
16993
16994 // members lookup methods
16995 static uint32_t idx_to_id(uint32_t idx);
16996 static bool is_id_valid(const uint32_t& id);
16997 static crit_e get_crit(const uint32_t& id);
16998 static ext_c get_ext(const uint32_t& id);
16999 static presence_e get_presence(const uint32_t& id);
17000};
17001
17002// SRSCarrier-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17003using srs_carrier_list_item_ext_ies_o = protocol_ext_empty_o;
17004
17005// SRSResourceSetItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17007 // Extension ::= OPEN TYPE
17008 struct ext_c {
17009 struct types_opts {
17010 enum options { srs_spatial_relation_per_srs_res, nulltype } value;
17011
17012 const char* to_string() const;
17013 };
17015
17016 // choice methods
17017 types type() const { return types::srs_spatial_relation_per_srs_res; }
17018 SRSASN_CODE pack(bit_ref& bref) const;
17019 SRSASN_CODE unpack(cbit_ref& bref);
17020 void to_json(json_writer& j) const;
17021 // getters
17022 spatial_relation_per_srs_res_s& srs_spatial_relation_per_srs_res() { return c; }
17023 const spatial_relation_per_srs_res_s& srs_spatial_relation_per_srs_res() const { return c; }
17024
17025 private:
17026 spatial_relation_per_srs_res_s c;
17027 };
17028
17029 // members lookup methods
17030 static uint32_t idx_to_id(uint32_t idx);
17031 static bool is_id_valid(const uint32_t& id);
17032 static crit_e get_crit(const uint32_t& id);
17033 static ext_c get_ext(const uint32_t& id);
17034 static presence_e get_presence(const uint32_t& id);
17035};
17036
17037// Search-window-information-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17038using search_win_info_ext_ies_o = protocol_ext_empty_o;
17039
17041 bool ranac_present = false;
17042 bool extended_served_plmns_list_present = false;
17043 bool cell_direction_present = false;
17044 bool bplmn_id_info_list_present = false;
17045 bool cell_type_present = false;
17046 bool cfg_tac_ind_present = false;
17047 bool aggressor_gnb_set_id_present = false;
17048 bool victim_gnb_set_id_present = false;
17049 bool iab_info_iab_du_present = false;
17050 bool ssb_positions_in_burst_present = false;
17051 bool nr_prach_cfg_present = false;
17052 bool sfn_offset_present = false;
17053 bool npn_broadcast_info_present = false;
17054 bool supported_mbs_fsa_id_list_present = false;
17055 bool redcap_bcast_info_present = false;
17056 uint16_t ranac;
17057 extended_served_plmns_list_l extended_served_plmns_list;
17058 cell_direction_e cell_direction;
17059 bplmn_id_info_list_l bplmn_id_info_list;
17060 cell_type_s cell_type;
17061 cfg_tac_ind_e cfg_tac_ind;
17062 aggressor_gnb_set_id_s aggressor_gnb_set_id;
17063 victim_gnb_set_id_s victim_gnb_set_id;
17064 iab_info_iab_du_s iab_info_iab_du;
17065 ssb_positions_in_burst_c ssb_positions_in_burst;
17066 nr_prach_cfg_s nr_prach_cfg;
17067 sfn_offset_s sfn_offset;
17068 npn_broadcast_info_c npn_broadcast_info;
17069 supported_mbs_fsa_id_list_l supported_mbs_fsa_id_list;
17070 fixed_bitstring<8, false, true> redcap_bcast_info;
17071
17072 // sequence methods
17073 SRSASN_CODE pack(bit_ref& bref) const;
17074 SRSASN_CODE unpack(cbit_ref& bref);
17075 void to_json(json_writer& j) const;
17076};
17077
17078// Served-Cell-Information ::= SEQUENCE
17080 bool ext = false;
17081 bool five_gs_tac_present = false;
17082 bool cfg_eps_tac_present = false;
17083 bool ie_exts_present = false;
17084 nr_cgi_s nr_cgi;
17085 uint16_t nr_pci = 0;
17086 fixed_octstring<3, true> five_gs_tac;
17087 fixed_octstring<2, true> cfg_eps_tac;
17088 served_plmns_list_l served_plmns;
17089 nr_mode_info_c nr_mode_info;
17090 unbounded_octstring<true> meas_timing_cfg;
17092 // ...
17093
17094 // sequence methods
17095 SRSASN_CODE pack(bit_ref& bref) const;
17096 SRSASN_CODE unpack(cbit_ref& bref);
17097 void to_json(json_writer& j) const;
17098};
17099
17100// Served-Cells-To-Add-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17102
17103// Served-Cells-To-Delete-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17105
17106// Served-Cells-To-Modify-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17108
17109// ServingCellMO-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17111
17113
17114// SpatialRelationInfo ::= SEQUENCE
17116 bool ie_exts_present = false;
17117 spatial_relationfor_res_id_l spatial_relationfor_res_id;
17119
17120 // sequence methods
17121 SRSASN_CODE pack(bit_ref& bref) const;
17122 SRSASN_CODE unpack(cbit_ref& bref);
17123 void to_json(json_writer& j) const;
17124};
17125
17126// TNLAssociationUsage ::= ENUMERATED
17128 enum options { ue, non_ue, both, /*...*/ nulltype } value;
17129
17130 const char* to_string() const;
17131};
17133
17135
17136// TRPInformation ::= SEQUENCE
17138 bool ie_exts_present = false;
17139 uint32_t trp_id = 0;
17140 trp_info_type_resp_list_l trp_info_type_resp_list;
17142
17143 // sequence methods
17144 SRSASN_CODE pack(bit_ref& bref) const;
17145 SRSASN_CODE unpack(cbit_ref& bref);
17146 void to_json(json_writer& j) const;
17147};
17148
17149// TRPInformationItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17151
17152// Transport-UP-Layer-Address-Info-To-Add-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17154
17155// Transport-UP-Layer-Address-Info-To-Remove-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17157
17158// UACPLMN-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17160 // Extension ::= OPEN TYPE
17161 struct ext_c {
17162 struct types_opts {
17163 enum options { n_id, nulltype } value;
17164
17165 const char* to_string() const;
17166 };
17168
17169 // choice methods
17170 types type() const { return types::n_id; }
17171 SRSASN_CODE pack(bit_ref& bref) const;
17172 SRSASN_CODE unpack(cbit_ref& bref);
17173 void to_json(json_writer& j) const;
17174 // getters
17175 fixed_bitstring<44, false, true>& n_id() { return c; }
17176 const fixed_bitstring<44, false, true>& n_id() const { return c; }
17177
17178 private:
17180 };
17181
17182 // members lookup methods
17183 static uint32_t idx_to_id(uint32_t idx);
17184 static bool is_id_valid(const uint32_t& id);
17185 static crit_e get_crit(const uint32_t& id);
17186 static ext_c get_ext(const uint32_t& id);
17187 static presence_e get_presence(const uint32_t& id);
17188};
17189
17190// UACType-List ::= SEQUENCE (SIZE (1..64)) OF UACType-Item
17191using uac_type_list_l = dyn_array<uac_type_item_s>;
17192
17193// UE-MulticastMRBs-ConfirmedToBeModified-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17194using ue_multicast_m_rbs_confirmed_to_be_modified_item_ext_ies_o = protocol_ext_empty_o;
17195
17196// UE-MulticastMRBs-RequiredToBeModified-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17198 // Extension ::= OPEN TYPE
17199 struct ext_c {
17200 struct types_opts {
17201 enum options { multicast_f1_u_context_ref_cu, nulltype } value;
17202
17203 const char* to_string() const;
17204 };
17206
17207 // choice methods
17208 types type() const { return types::multicast_f1_u_context_ref_cu; }
17209 SRSASN_CODE pack(bit_ref& bref) const;
17210 SRSASN_CODE unpack(cbit_ref& bref);
17211 void to_json(json_writer& j) const;
17212 // getters
17213 fixed_octstring<4, true>& multicast_f1_u_context_ref_cu() { return c; }
17214 const fixed_octstring<4, true>& multicast_f1_u_context_ref_cu() const { return c; }
17215
17216 private:
17218 };
17219
17220 // members lookup methods
17221 static uint32_t idx_to_id(uint32_t idx);
17222 static bool is_id_valid(const uint32_t& id);
17223 static crit_e get_crit(const uint32_t& id);
17224 static ext_c get_ext(const uint32_t& id);
17225 static presence_e get_presence(const uint32_t& id);
17226};
17227
17228// UE-MulticastMRBs-RequiredToBeReleased-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17229using ue_multicast_m_rbs_required_to_be_released_item_ext_ies_o = protocol_ext_empty_o;
17230
17231// UE-MulticastMRBs-Setup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17232using ue_multicast_m_rbs_setup_item_ext_ies_o = protocol_ext_empty_o;
17233
17234// UE-MulticastMRBs-ToBeReleased-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17235using ue_multicast_m_rbs_to_be_released_item_ext_ies_o = protocol_ext_empty_o;
17236
17237// UE-MulticastMRBs-ToBeSetup-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17239 // Extension ::= OPEN TYPE
17240 struct ext_c {
17241 struct types_opts {
17242 enum options { source_mrb_id, nulltype } value;
17243 typedef uint8_t number_type;
17244
17245 const char* to_string() const;
17246 uint8_t to_number() const;
17247 };
17249
17250 // choice methods
17251 types type() const { return types::source_mrb_id; }
17252 SRSASN_CODE pack(bit_ref& bref) const;
17253 SRSASN_CODE unpack(cbit_ref& bref);
17254 void to_json(json_writer& j) const;
17255 // getters
17256 uint16_t& source_mrb_id() { return c; }
17257 const uint16_t& source_mrb_id() const { return c; }
17258
17259 private:
17260 uint16_t c;
17261 };
17262
17263 // members lookup methods
17264 static uint32_t idx_to_id(uint32_t idx);
17265 static bool is_id_valid(const uint32_t& id);
17266 static crit_e get_crit(const uint32_t& id);
17267 static ext_c get_ext(const uint32_t& id);
17268 static presence_e get_presence(const uint32_t& id);
17269};
17270
17271// UE-MulticastMRBs-ToBeSetup-atModify-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17272using ue_multicast_m_rbs_to_be_setup_at_modify_item_ext_ies_o = protocol_ext_empty_o;
17273
17274using ue_associated_lc_f1_conn_item_ext_ies_container = protocol_ext_container_empty_l;
17275
17276// UE-associatedLogicalF1-ConnectionItem ::= SEQUENCE
17278 bool ext = false;
17279 bool gnb_cu_ue_f1ap_id_present = false;
17280 bool gnb_du_ue_f1ap_id_present = false;
17281 bool ie_exts_present = false;
17282 uint64_t gnb_cu_ue_f1ap_id = 0;
17283 uint64_t gnb_du_ue_f1ap_id = 0;
17285 // ...
17286
17287 // sequence methods
17288 SRSASN_CODE pack(bit_ref& bref) const;
17289 SRSASN_CODE unpack(cbit_ref& bref);
17290 void to_json(json_writer& j) const;
17291};
17292
17293// UEIdentity-List-For-Paging-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17295
17296// UEIdentityIndexValue ::= CHOICE
17298 struct types_opts {
17299 enum options { idx_len10, choice_ext, nulltype } value;
17300 typedef uint8_t number_type;
17301
17302 const char* to_string() const;
17303 uint8_t to_number() const;
17304 };
17306
17307 // choice methods
17308 ue_id_idx_value_c() = default;
17310 ue_id_idx_value_c& operator=(const ue_id_idx_value_c& other);
17311 ~ue_id_idx_value_c() { destroy_(); }
17312 void set(types::options e = types::nulltype);
17313 types type() const { return type_; }
17314 SRSASN_CODE pack(bit_ref& bref) const;
17315 SRSASN_CODE unpack(cbit_ref& bref);
17316 void to_json(json_writer& j) const;
17317 // getters
17319 {
17320 assert_choice_type(types::idx_len10, type_, "UEIdentityIndexValue");
17321 return c.get<fixed_bitstring<10, false, true>>();
17322 }
17323 protocol_ie_single_container_s<ue_id_idx_value_choice_ext_ies_o>& choice_ext()
17324 {
17325 assert_choice_type(types::choice_ext, type_, "UEIdentityIndexValue");
17326 return c.get<protocol_ie_single_container_s<ue_id_idx_value_choice_ext_ies_o>>();
17327 }
17328 const fixed_bitstring<10, false, true>& idx_len10() const
17329 {
17330 assert_choice_type(types::idx_len10, type_, "UEIdentityIndexValue");
17331 return c.get<fixed_bitstring<10, false, true>>();
17332 }
17333 const protocol_ie_single_container_s<ue_id_idx_value_choice_ext_ies_o>& choice_ext() const
17334 {
17335 assert_choice_type(types::choice_ext, type_, "UEIdentityIndexValue");
17336 return c.get<protocol_ie_single_container_s<ue_id_idx_value_choice_ext_ies_o>>();
17337 }
17338 fixed_bitstring<10, false, true>& set_idx_len10();
17339 protocol_ie_single_container_s<ue_id_idx_value_choice_ext_ies_o>& set_choice_ext();
17340
17341private:
17342 types type_;
17343 choice_buffer_t<fixed_bitstring<10, false, true>, protocol_ie_single_container_s<ue_id_idx_value_choice_ext_ies_o>> c;
17344
17345 void destroy_();
17346};
17347
17348// UL-BH-Non-UP-Traffic-Mapping-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17349using ul_bh_non_up_traffic_map_item_ext_ies_o = protocol_ext_empty_o;
17350
17351// UL-UP-TNL-Address-to-Update-List-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17352using ul_up_tnl_address_to_upd_list_item_ext_ies_o = protocol_ext_empty_o;
17353
17354// UL-UP-TNL-Information-to-Update-List-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17355using ul_up_tnl_info_to_upd_list_item_ext_ies_o = protocol_ext_empty_o;
17356
17357// UplinkChannelBW-PerSCS-List ::= SEQUENCE (SIZE (1..5)) OF SCS-SpecificCarrier
17358using ul_ch_bw_per_scs_list_l = dyn_array<scs_specific_carrier_s>;
17359
17360// UuRLCChannelQoSInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
17361using uu_rlc_ch_qos_info_ext_ies_o = protocol_ies_empty_o;
17362
17363using gnb_cu_tnl_assoc_failed_to_setup_item_ext_ies_container = protocol_ext_container_empty_l;
17364
17365// GNB-CU-TNL-Association-Failed-To-Setup-Item ::= SEQUENCE
17367 bool ie_exts_present = false;
17368 cp_transport_layer_address_c tnl_assoc_transport_layer_address;
17369 cause_c cause;
17371
17372 // sequence methods
17373 SRSASN_CODE pack(bit_ref& bref) const;
17374 SRSASN_CODE unpack(cbit_ref& bref);
17375 void to_json(json_writer& j) const;
17376};
17377
17379
17380// GNB-CU-TNL-Association-Setup-Item ::= SEQUENCE
17382 bool ie_exts_present = false;
17383 cp_transport_layer_address_c tnl_assoc_transport_layer_address;
17385
17386 // sequence methods
17387 SRSASN_CODE pack(bit_ref& bref) const;
17388 SRSASN_CODE unpack(cbit_ref& bref);
17389 void to_json(json_writer& j) const;
17390};
17391
17393
17394// GNB-CU-TNL-Association-To-Add-Item ::= SEQUENCE
17396 bool ie_exts_present = false;
17397 cp_transport_layer_address_c tnl_assoc_transport_layer_address;
17398 tnl_assoc_usage_e tnl_assoc_usage;
17400
17401 // sequence methods
17402 SRSASN_CODE pack(bit_ref& bref) const;
17403 SRSASN_CODE unpack(cbit_ref& bref);
17404 void to_json(json_writer& j) const;
17405};
17406
17407// GNB-CU-TNL-Association-To-Remove-Item ::= SEQUENCE
17409 cp_transport_layer_address_c tnl_assoc_transport_layer_address;
17411
17412 // sequence methods
17413 SRSASN_CODE pack(bit_ref& bref) const;
17414 SRSASN_CODE unpack(cbit_ref& bref);
17415 void to_json(json_writer& j) const;
17416};
17417
17419
17420// GNB-CU-TNL-Association-To-Update-Item ::= SEQUENCE
17422 bool tnl_assoc_usage_present = false;
17423 bool ie_exts_present = false;
17424 cp_transport_layer_address_c tnl_assoc_transport_layer_address;
17425 tnl_assoc_usage_e tnl_assoc_usage;
17427
17428 // sequence methods
17429 SRSASN_CODE pack(bit_ref& bref) const;
17430 SRSASN_CODE unpack(cbit_ref& bref);
17431 void to_json(json_writer& j) const;
17432};
17433
17435
17436// GNB-DU-Served-Cells-Item ::= SEQUENCE
17438 bool ext = false;
17439 bool gnb_du_sys_info_present = false;
17440 bool ie_exts_present = false;
17441 served_cell_info_s served_cell_info;
17442 gnb_du_sys_info_s gnb_du_sys_info;
17444 // ...
17445
17446 // sequence methods
17447 SRSASN_CODE pack(bit_ref& bref) const;
17448 SRSASN_CODE unpack(cbit_ref& bref);
17449 void to_json(json_writer& j) const;
17450};
17451
17453
17454// GNB-DU-TNL-Association-To-Remove-Item ::= SEQUENCE
17456 bool tnl_assoc_transport_layer_address_gnb_cu_present = false;
17457 bool ie_exts_present = false;
17458 cp_transport_layer_address_c tnl_assoc_transport_layer_address;
17459 cp_transport_layer_address_c tnl_assoc_transport_layer_address_gnb_cu;
17461
17462 // sequence methods
17463 SRSASN_CODE pack(bit_ref& bref) const;
17464 SRSASN_CODE unpack(cbit_ref& bref);
17465 void to_json(json_writer& j) const;
17466};
17467
17468// GNBDUUESliceMaximumBitRateItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17470
17472
17473// IAB-Allocated-TNL-Address-Item ::= SEQUENCE
17475 bool iab_tnl_address_usage_present = false;
17476 bool ie_exts_present = false;
17477 iab_tnl_address_c iab_tnl_address;
17478 iab_tnl_address_usage_e iab_tnl_address_usage;
17480
17481 // sequence methods
17482 SRSASN_CODE pack(bit_ref& bref) const;
17483 SRSASN_CODE unpack(cbit_ref& bref);
17484 void to_json(json_writer& j) const;
17485};
17486
17488
17489// IAB-Congestion-Indication-Item ::= SEQUENCE
17491 bool ie_exts_present = false;
17493 bh_rlc_ch_list_l bh_rlc_ch_list;
17495
17496 // sequence methods
17497 SRSASN_CODE pack(bit_ref& bref) const;
17498 SRSASN_CODE unpack(cbit_ref& bref);
17499 void to_json(json_writer& j) const;
17500};
17501
17502// IAB-MT-Cell-NA-Resource-Configuration-Mode-Info ::= CHOICE
17504 struct types_opts {
17505 enum options { fdd, tdd, choice_ext, nulltype } value;
17506
17507 const char* to_string() const;
17508 };
17510
17511 // choice methods
17515 ~iab_mt_cell_na_res_cfg_mode_info_c() { destroy_(); }
17516 void set(types::options e = types::nulltype);
17517 types type() const { return type_; }
17518 SRSASN_CODE pack(bit_ref& bref) const;
17519 SRSASN_CODE unpack(cbit_ref& bref);
17520 void to_json(json_writer& j) const;
17521 // getters
17522 iab_mt_cell_na_res_cfg_fdd_info_s& fdd()
17523 {
17524 assert_choice_type(types::fdd, type_, "IAB-MT-Cell-NA-Resource-Configuration-Mode-Info");
17525 return c.get<iab_mt_cell_na_res_cfg_fdd_info_s>();
17526 }
17527 iab_mt_cell_na_res_cfg_tdd_info_s& tdd()
17528 {
17529 assert_choice_type(types::tdd, type_, "IAB-MT-Cell-NA-Resource-Configuration-Mode-Info");
17530 return c.get<iab_mt_cell_na_res_cfg_tdd_info_s>();
17531 }
17532 protocol_ie_single_container_s<iab_mt_cell_na_res_cfg_mode_info_ext_ies_o>& choice_ext()
17533 {
17534 assert_choice_type(types::choice_ext, type_, "IAB-MT-Cell-NA-Resource-Configuration-Mode-Info");
17535 return c.get<protocol_ie_single_container_s<iab_mt_cell_na_res_cfg_mode_info_ext_ies_o>>();
17536 }
17537 const iab_mt_cell_na_res_cfg_fdd_info_s& fdd() const
17538 {
17539 assert_choice_type(types::fdd, type_, "IAB-MT-Cell-NA-Resource-Configuration-Mode-Info");
17540 return c.get<iab_mt_cell_na_res_cfg_fdd_info_s>();
17541 }
17542 const iab_mt_cell_na_res_cfg_tdd_info_s& tdd() const
17543 {
17544 assert_choice_type(types::tdd, type_, "IAB-MT-Cell-NA-Resource-Configuration-Mode-Info");
17545 return c.get<iab_mt_cell_na_res_cfg_tdd_info_s>();
17546 }
17547 const protocol_ie_single_container_s<iab_mt_cell_na_res_cfg_mode_info_ext_ies_o>& choice_ext() const
17548 {
17549 assert_choice_type(types::choice_ext, type_, "IAB-MT-Cell-NA-Resource-Configuration-Mode-Info");
17550 return c.get<protocol_ie_single_container_s<iab_mt_cell_na_res_cfg_mode_info_ext_ies_o>>();
17551 }
17552 iab_mt_cell_na_res_cfg_fdd_info_s& set_fdd();
17553 iab_mt_cell_na_res_cfg_tdd_info_s& set_tdd();
17554 protocol_ie_single_container_s<iab_mt_cell_na_res_cfg_mode_info_ext_ies_o>& set_choice_ext();
17555
17556private:
17557 types type_;
17558 choice_buffer_t<iab_mt_cell_na_res_cfg_fdd_info_s,
17559 iab_mt_cell_na_res_cfg_tdd_info_s,
17560 protocol_ie_single_container_s<iab_mt_cell_na_res_cfg_mode_info_ext_ies_o>>
17561 c;
17562
17563 void destroy_();
17564};
17565
17566using iab_tnl_addresses_to_rem_item_ext_ies_container = protocol_ext_container_empty_l;
17567
17568// IAB-TNL-Addresses-To-Remove-Item ::= SEQUENCE
17570 bool ie_exts_present = false;
17571 iab_tnl_address_c iab_tnl_address;
17573
17574 // sequence methods
17575 SRSASN_CODE pack(bit_ref& bref) const;
17576 SRSASN_CODE unpack(cbit_ref& bref);
17577 void to_json(json_writer& j) const;
17578};
17579
17581
17582// IABTNLAddress-Item ::= SEQUENCE
17584 bool ie_exts_present = false;
17585 iab_tnl_address_c iab_tnl_address;
17587
17588 // sequence methods
17589 SRSASN_CODE pack(bit_ref& bref) const;
17590 SRSASN_CODE unpack(cbit_ref& bref);
17591 void to_json(json_writer& j) const;
17592};
17593
17594// IABTNLAddressesRequested-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17596
17598
17599// MC-PagingCell-Item ::= SEQUENCE
17601 bool ie_exts_present = false;
17602 nr_cgi_s nr_cgi;
17604
17605 // sequence methods
17606 SRSASN_CODE pack(bit_ref& bref) const;
17607 SRSASN_CODE unpack(cbit_ref& bref);
17608 void to_json(json_writer& j) const;
17609};
17610
17612
17613// MDTConfiguration ::= SEQUENCE
17615 bool ext = false;
17616 bool m2_cfg_present = false;
17617 bool m5_cfg_present = false;
17618 bool m6_cfg_present = false;
17619 bool m7_cfg_present = false;
17620 bool ie_exts_present = false;
17621 mdt_activation_e mdt_activation;
17622 fixed_bitstring<8, false, true> meass_to_activ;
17623 m2_cfg_e m2_cfg;
17624 m5_cfg_s m5_cfg;
17625 m6_cfg_s m6_cfg;
17626 m7_cfg_s m7_cfg;
17628 // ...
17629
17630 // sequence methods
17631 SRSASN_CODE pack(bit_ref& bref) const;
17632 SRSASN_CODE unpack(cbit_ref& bref);
17633 void to_json(json_writer& j) const;
17634};
17635
17637
17638// MulticastF1UContext-FailedToBeSetup-Item ::= SEQUENCE
17640 bool ext = false;
17641 bool cause_present = false;
17642 bool ie_exts_present = false;
17643 uint16_t mrb_id = 1;
17644 cause_c cause;
17646 // ...
17647
17648 // sequence methods
17649 SRSASN_CODE pack(bit_ref& bref) const;
17650 SRSASN_CODE unpack(cbit_ref& bref);
17651 void to_json(json_writer& j) const;
17652};
17653
17655
17656// MulticastF1UContext-Setup-Item ::= SEQUENCE
17658 bool ext = false;
17659 bool ie_exts_present = false;
17660 uint16_t mrb_id = 1;
17661 up_transport_layer_info_c mbs_f1u_info_at_cu;
17663 // ...
17664
17665 // sequence methods
17666 SRSASN_CODE pack(bit_ref& bref) const;
17667 SRSASN_CODE unpack(cbit_ref& bref);
17668 void to_json(json_writer& j) const;
17669};
17670
17672
17673// MulticastF1UContext-ToBeSetup-Item ::= SEQUENCE
17675 bool ext = false;
17676 bool mbs_progress_info_present = false;
17677 bool ie_exts_present = false;
17678 uint16_t mrb_id = 1;
17679 up_transport_layer_info_c mbs_f1u_info_at_du;
17680 mrb_progress_info_c mbs_progress_info;
17682 // ...
17683
17684 // sequence methods
17685 SRSASN_CODE pack(bit_ref& bref) const;
17686 SRSASN_CODE unpack(cbit_ref& bref);
17687 void to_json(json_writer& j) const;
17688};
17689
17690// MulticastMBSSessionList-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17692
17694
17695// MulticastMRBs-FailedToBeModified-Item ::= SEQUENCE
17697 bool ext = false;
17698 bool cause_present = false;
17699 bool ie_exts_present = false;
17700 uint16_t mrb_id = 1;
17701 cause_c cause;
17703 // ...
17704
17705 // sequence methods
17706 SRSASN_CODE pack(bit_ref& bref) const;
17707 SRSASN_CODE unpack(cbit_ref& bref);
17708 void to_json(json_writer& j) const;
17709};
17710
17712
17713// MulticastMRBs-FailedToBeSetup-Item ::= SEQUENCE
17715 bool ext = false;
17716 bool cause_present = false;
17717 bool ie_exts_present = false;
17718 uint16_t mrb_id = 1;
17719 cause_c cause;
17721 // ...
17722
17723 // sequence methods
17724 SRSASN_CODE pack(bit_ref& bref) const;
17725 SRSASN_CODE unpack(cbit_ref& bref);
17726 void to_json(json_writer& j) const;
17727};
17728
17730
17731// MulticastMRBs-FailedToBeSetupMod-Item ::= SEQUENCE
17733 bool ext = false;
17734 bool cause_present = false;
17735 bool ie_exts_present = false;
17736 uint16_t mrb_id = 1;
17737 cause_c cause;
17739 // ...
17740
17741 // sequence methods
17742 SRSASN_CODE pack(bit_ref& bref) const;
17743 SRSASN_CODE unpack(cbit_ref& bref);
17744 void to_json(json_writer& j) const;
17745};
17746
17748
17749// MulticastMRBs-Modified-Item ::= SEQUENCE
17751 bool ext = false;
17752 bool ie_exts_present = false;
17753 uint16_t mrb_id = 1;
17755 // ...
17756
17757 // sequence methods
17758 SRSASN_CODE pack(bit_ref& bref) const;
17759 SRSASN_CODE unpack(cbit_ref& bref);
17760 void to_json(json_writer& j) const;
17761};
17762
17764
17765// MulticastMRBs-Setup-Item ::= SEQUENCE
17767 bool ext = false;
17768 bool ie_exts_present = false;
17769 uint16_t mrb_id = 1;
17771 // ...
17772
17773 // sequence methods
17774 SRSASN_CODE pack(bit_ref& bref) const;
17775 SRSASN_CODE unpack(cbit_ref& bref);
17776 void to_json(json_writer& j) const;
17777};
17778
17780
17781// MulticastMRBs-SetupMod-Item ::= SEQUENCE
17783 bool ext = false;
17784 bool ie_exts_present = false;
17785 uint16_t mrb_id = 1;
17787 // ...
17788
17789 // sequence methods
17790 SRSASN_CODE pack(bit_ref& bref) const;
17791 SRSASN_CODE unpack(cbit_ref& bref);
17792 void to_json(json_writer& j) const;
17793};
17794
17796
17797// MulticastMRBs-ToBeModified-Item ::= SEQUENCE
17799 bool ext = false;
17800 bool mrb_qos_info_present = false;
17801 bool mbs_dl_pdcp_sn_len_present = false;
17802 bool ie_exts_present = false;
17803 uint16_t mrb_id = 1;
17804 qos_flow_level_qos_params_s mrb_qos_info;
17805 mbs_flows_mapped_to_mrb_list_l mbs_flows_mapped_to_mrb_list;
17806 pdcp_sn_len_e mbs_dl_pdcp_sn_len;
17808 // ...
17809
17810 // sequence methods
17811 SRSASN_CODE pack(bit_ref& bref) const;
17812 SRSASN_CODE unpack(cbit_ref& bref);
17813 void to_json(json_writer& j) const;
17814};
17815
17817
17818// MulticastMRBs-ToBeReleased-Item ::= SEQUENCE
17820 bool ext = false;
17821 bool ie_exts_present = false;
17822 uint16_t mrb_id = 1;
17824 // ...
17825
17826 // sequence methods
17827 SRSASN_CODE pack(bit_ref& bref) const;
17828 SRSASN_CODE unpack(cbit_ref& bref);
17829 void to_json(json_writer& j) const;
17830};
17831
17833
17834// MulticastMRBs-ToBeSetup-Item ::= SEQUENCE
17836 bool ext = false;
17837 uint16_t mrb_id = 1;
17838 qos_flow_level_qos_params_s mrb_qos_info;
17839 mbs_flows_mapped_to_mrb_list_l mbs_flows_mapped_to_mrb_list;
17840 pdcp_sn_len_e mbs_dl_pdcp_sn_len;
17842 // ...
17843
17844 // sequence methods
17845 SRSASN_CODE pack(bit_ref& bref) const;
17846 SRSASN_CODE unpack(cbit_ref& bref);
17847 void to_json(json_writer& j) const;
17848};
17849
17851
17852// MulticastMRBs-ToBeSetupMod-Item ::= SEQUENCE
17854 bool ext = false;
17855 uint16_t mrb_id = 1;
17856 qos_flow_level_qos_params_s mrb_qos_info;
17857 mbs_flows_mapped_to_mrb_list_l mbs_flows_mapped_to_mrb_list;
17858 pdcp_sn_len_e mbs_dl_pdcp_sn_len;
17860 // ...
17861
17862 // sequence methods
17863 SRSASN_CODE pack(bit_ref& bref) const;
17864 SRSASN_CODE unpack(cbit_ref& bref);
17865 void to_json(json_writer& j) const;
17866};
17867
17869
17870// NR-CGI-List-For-Restart-Item ::= SEQUENCE
17872 bool ext = false;
17873 bool ie_exts_present = false;
17874 nr_cgi_s nr_cgi;
17876 // ...
17877
17878 // sequence methods
17879 SRSASN_CODE pack(bit_ref& bref) const;
17880 SRSASN_CODE unpack(cbit_ref& bref);
17881 void to_json(json_writer& j) const;
17882};
17883
17885
17886// Neighbour-Cell-Information-Item ::= SEQUENCE
17888 bool intended_tdd_dl_ul_cfg_present = false;
17889 bool ie_exts_present = false;
17890 nr_cgi_s nr_cgi;
17891 intended_tdd_dl_ul_cfg_s intended_tdd_dl_ul_cfg;
17893
17894 // sequence methods
17895 SRSASN_CODE pack(bit_ref& bref) const;
17896 SRSASN_CODE unpack(cbit_ref& bref);
17897 void to_json(json_writer& j) const;
17898};
17899
17900// Neighbour-Node-Cells-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17902
17904
17905// NotificationInformation ::= SEQUENCE
17907 bool ext = false;
17908 bool ie_exts_present = false;
17912 // ...
17913
17914 // sequence methods
17915 SRSASN_CODE pack(bit_ref& bref) const;
17916 SRSASN_CODE unpack(cbit_ref& bref);
17917 void to_json(json_writer& j) const;
17918};
17919
17920// PC5RLCChannelFailedToBeModifiedItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17922
17923// PC5RLCChannelFailedToBeSetupItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17925
17926// PC5RLCChannelModifiedItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17928
17929// PC5RLCChannelQoSInformation ::= CHOICE
17932 enum options { srb1, srb2, /*...*/ nulltype } value;
17933 typedef uint8_t number_type;
17934
17935 const char* to_string() const;
17936 uint8_t to_number() const;
17937 };
17939 struct types_opts {
17940 enum options { pc5_rlc_ch_qos, pc5_ctrl_plane_traffic_type, choice_ext, nulltype } value;
17941
17942 const char* to_string() const;
17943 };
17945
17946 // choice methods
17947 pc5_rlc_ch_qos_info_c() = default;
17949 pc5_rlc_ch_qos_info_c& operator=(const pc5_rlc_ch_qos_info_c& other);
17950 ~pc5_rlc_ch_qos_info_c() { destroy_(); }
17951 void set(types::options e = types::nulltype);
17952 types type() const { return type_; }
17953 SRSASN_CODE pack(bit_ref& bref) const;
17954 SRSASN_CODE unpack(cbit_ref& bref);
17955 void to_json(json_writer& j) const;
17956 // getters
17957 qos_flow_level_qos_params_s& pc5_rlc_ch_qos()
17958 {
17959 assert_choice_type(types::pc5_rlc_ch_qos, type_, "PC5RLCChannelQoSInformation");
17960 return c.get<qos_flow_level_qos_params_s>();
17961 }
17962 pc5_ctrl_plane_traffic_type_e_& pc5_ctrl_plane_traffic_type()
17963 {
17964 assert_choice_type(types::pc5_ctrl_plane_traffic_type, type_, "PC5RLCChannelQoSInformation");
17965 return c.get<pc5_ctrl_plane_traffic_type_e_>();
17966 }
17967 protocol_ie_single_container_s<pc5_rlc_ch_qos_info_ext_ies_o>& choice_ext()
17968 {
17969 assert_choice_type(types::choice_ext, type_, "PC5RLCChannelQoSInformation");
17970 return c.get<protocol_ie_single_container_s<pc5_rlc_ch_qos_info_ext_ies_o>>();
17971 }
17972 const qos_flow_level_qos_params_s& pc5_rlc_ch_qos() const
17973 {
17974 assert_choice_type(types::pc5_rlc_ch_qos, type_, "PC5RLCChannelQoSInformation");
17975 return c.get<qos_flow_level_qos_params_s>();
17976 }
17977 const pc5_ctrl_plane_traffic_type_e_& pc5_ctrl_plane_traffic_type() const
17978 {
17979 assert_choice_type(types::pc5_ctrl_plane_traffic_type, type_, "PC5RLCChannelQoSInformation");
17980 return c.get<pc5_ctrl_plane_traffic_type_e_>();
17981 }
17982 const protocol_ie_single_container_s<pc5_rlc_ch_qos_info_ext_ies_o>& choice_ext() const
17983 {
17984 assert_choice_type(types::choice_ext, type_, "PC5RLCChannelQoSInformation");
17985 return c.get<protocol_ie_single_container_s<pc5_rlc_ch_qos_info_ext_ies_o>>();
17986 }
17987 qos_flow_level_qos_params_s& set_pc5_rlc_ch_qos();
17988 pc5_ctrl_plane_traffic_type_e_& set_pc5_ctrl_plane_traffic_type();
17989 protocol_ie_single_container_s<pc5_rlc_ch_qos_info_ext_ies_o>& set_choice_ext();
17990
17991private:
17992 types type_;
17993 choice_buffer_t<protocol_ie_single_container_s<pc5_rlc_ch_qos_info_ext_ies_o>, qos_flow_level_qos_params_s> c;
17994
17995 void destroy_();
17996};
17997
17998// PC5RLCChannelRequiredToBeModifiedItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
17999using pc5_rlc_ch_required_to_be_modified_item_ext_ies_o = protocol_ext_empty_o;
18000
18001// PC5RLCChannelRequiredToBeReleasedItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18002using pc5_rlc_ch_required_to_be_released_item_ext_ies_o = protocol_ext_empty_o;
18003
18004// PC5RLCChannelSetupItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18005using pc5_rlc_ch_setup_item_ext_ies_o = protocol_ext_empty_o;
18006
18007// PC5RLCChannelToBeModifiedItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18008using pc5_rlc_ch_to_be_modified_item_ext_ies_o = protocol_ext_empty_o;
18009
18010// PC5RLCChannelToBeReleasedItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18011using pc5_rlc_ch_to_be_released_item_ext_ies_o = protocol_ext_empty_o;
18012
18013// PC5RLCChannelToBeSetupItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18014using pc5_rlc_ch_to_be_setup_item_ext_ies_o = protocol_ext_empty_o;
18015
18016using pdc_measured_results_item_ext_ies_container = protocol_ext_container_empty_l;
18017
18018// PDCMeasuredResults-Item ::= SEQUENCE
18020 bool ie_exts_present = false;
18021 pdc_measured_results_value_c pdc_measured_results_value;
18023
18024 // sequence methods
18025 SRSASN_CODE pack(bit_ref& bref) const;
18026 SRSASN_CODE unpack(cbit_ref& bref);
18027 void to_json(json_writer& j) const;
18028};
18029
18031
18032// PDCMeasurementQuantities-Item ::= SEQUENCE
18034 bool ie_exts_present = false;
18035 pdc_meas_quantities_value_e pd_cmeas_quantities_value;
18037
18038 // sequence methods
18039 SRSASN_CODE pack(bit_ref& bref) const;
18040 SRSASN_CODE unpack(cbit_ref& bref);
18041 void to_json(json_writer& j) const;
18042};
18043
18044// PRS-Measurement-Info-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18046
18047// PRSTRPItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18049
18051
18052// PRSTransmissionOffInformation ::= SEQUENCE
18054 bool ext = false;
18055 bool ie_exts_present = false;
18056 prs_tx_off_ind_c prs_tx_off_ind;
18058 // ...
18059
18060 // sequence methods
18061 SRSASN_CODE pack(bit_ref& bref) const;
18062 SRSASN_CODE unpack(cbit_ref& bref);
18063 void to_json(json_writer& j) const;
18064};
18065
18066// PRSTransmissionTRPItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18068
18070
18071// PWS-Failed-NR-CGI-Item ::= SEQUENCE
18073 bool ext = false;
18074 bool ie_exts_present = false;
18075 nr_cgi_s nr_cgi;
18076 uint32_t nof_broadcasts = 0;
18078 // ...
18079
18080 // sequence methods
18081 SRSASN_CODE pack(bit_ref& bref) const;
18082 SRSASN_CODE unpack(cbit_ref& bref);
18083 void to_json(json_writer& j) const;
18084};
18085
18087 bool last_used_cell_ind_present = false;
18088 bool pei_subgrouping_support_ind_present = false;
18089 last_used_cell_ind_e last_used_cell_ind;
18090 pei_subgrouping_support_ind_e pei_subgrouping_support_ind;
18091
18092 // sequence methods
18093 SRSASN_CODE pack(bit_ref& bref) const;
18094 SRSASN_CODE unpack(cbit_ref& bref);
18095 void to_json(json_writer& j) const;
18096};
18097
18098// PagingCell-Item ::= SEQUENCE
18100 bool ie_exts_present = false;
18101 nr_cgi_s nr_cgi;
18103
18104 // sequence methods
18105 SRSASN_CODE pack(bit_ref& bref) const;
18106 SRSASN_CODE unpack(cbit_ref& bref);
18107 void to_json(json_writer& j) const;
18108};
18109
18110// PosMeasurementQuantities-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18112
18113// PosMeasurementResult ::= SEQUENCE (SIZE (1..16384)) OF PosMeasurementResultItem
18115
18116// PosMeasurementResultList-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18118 // Extension ::= OPEN TYPE
18119 struct ext_c {
18120 struct types_opts {
18121 enum options { nr_cgi, nulltype } value;
18122
18123 const char* to_string() const;
18124 };
18126
18127 // choice methods
18128 types type() const { return types::nr_cgi; }
18129 SRSASN_CODE pack(bit_ref& bref) const;
18130 SRSASN_CODE unpack(cbit_ref& bref);
18131 void to_json(json_writer& j) const;
18132 // getters
18133 nr_cgi_s& nr_cgi() { return c; }
18134 const nr_cgi_s& nr_cgi() const { return c; }
18135
18136 private:
18137 nr_cgi_s c;
18138 };
18139
18140 // members lookup methods
18141 static uint32_t idx_to_id(uint32_t idx);
18142 static bool is_id_valid(const uint32_t& id);
18143 static crit_e get_crit(const uint32_t& id);
18144 static ext_c get_ext(const uint32_t& id);
18145 static presence_e get_presence(const uint32_t& id);
18146};
18147
18148// PosMeasurementType ::= ENUMERATED
18150 enum options { gnb_rx_tx, ul_srs_rsrp, ul_aoa, ul_rtoa, /*...*/ multiple_ul_aoa, ul_srs_rsrpp, nulltype } value;
18151
18152 const char* to_string() const;
18153};
18155
18156// PosSItype-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18158
18160
18161// Potential-SpCell-Item ::= SEQUENCE
18163 bool ext = false;
18164 bool ie_exts_present = false;
18165 nr_cgi_s potential_sp_cell_id;
18167 // ...
18168
18169 // sequence methods
18170 SRSASN_CODE pack(bit_ref& bref) const;
18171 SRSASN_CODE unpack(cbit_ref& bref);
18172 void to_json(json_writer& j) const;
18173};
18174
18176
18177// Protected-EUTRA-Resources-Item ::= SEQUENCE
18179 bool ie_exts_present = false;
18180 uint16_t spec_sharing_group_id = 1;
18181 eutra_cells_list_l eutra_cells_list;
18183
18184 // sequence methods
18185 SRSASN_CODE pack(bit_ref& bref) const;
18186 SRSASN_CODE unpack(cbit_ref& bref);
18187 void to_json(json_writer& j) const;
18188};
18189
18191
18192// QoEInformationList-Item ::= SEQUENCE
18194 bool qo_e_metrics_present = false;
18195 bool ie_exts_present = false;
18196 qo_e_metrics_s qo_e_metrics;
18198
18199 // sequence methods
18200 SRSASN_CODE pack(bit_ref& bref) const;
18201 SRSASN_CODE unpack(cbit_ref& bref);
18202 void to_json(json_writer& j) const;
18203};
18204
18205// RANUEPagingIdentity-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18207
18208// RedCapIndication ::= ENUMERATED
18210 enum options { true_value, /*...*/ nulltype } value;
18211
18212 const char* to_string() const;
18213};
18215
18217
18218// RequestedDLPRSTransmissionCharacteristics ::= SEQUENCE
18220 bool ext = false;
18221 bool numof_freq_layers_present = false;
18222 bool start_time_and_dur_present = false;
18223 bool ie_exts_present = false;
18224 requested_dl_prs_res_set_list_l requested_dl_prs_res_set_list;
18225 uint8_t numof_freq_layers = 1;
18226 start_time_and_dur_s start_time_and_dur;
18228 // ...
18229
18230 // sequence methods
18231 SRSASN_CODE pack(bit_ref& bref) const;
18232 SRSASN_CODE unpack(cbit_ref& bref);
18233 void to_json(json_writer& j) const;
18234};
18235
18236// ResourceCoordinationEUTRACellInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18238 // Extension ::= OPEN TYPE
18239 struct ext_c {
18240 struct types_opts {
18241 enum options { ignore_prach_cfg, nulltype } value;
18242
18243 const char* to_string() const;
18244 };
18246
18247 // choice methods
18248 types type() const { return types::ignore_prach_cfg; }
18249 SRSASN_CODE pack(bit_ref& bref) const;
18250 SRSASN_CODE unpack(cbit_ref& bref);
18251 void to_json(json_writer& j) const;
18252 // getters
18253 ignore_prach_cfg_e& ignore_prach_cfg() { return c; }
18254 const ignore_prach_cfg_e& ignore_prach_cfg() const { return c; }
18255
18256 private:
18257 ignore_prach_cfg_e c;
18258 };
18259
18260 // members lookup methods
18261 static uint32_t idx_to_id(uint32_t idx);
18262 static bool is_id_valid(const uint32_t& id);
18263 static crit_e get_crit(const uint32_t& id);
18264 static ext_c get_ext(const uint32_t& id);
18265 static presence_e get_presence(const uint32_t& id);
18266};
18267
18268using scell_failedto_setup_item_ext_ies_container = protocol_ext_container_empty_l;
18269
18270// SCell-FailedtoSetup-Item ::= SEQUENCE
18272 bool ext = false;
18273 bool cause_present = false;
18274 bool ie_exts_present = false;
18275 nr_cgi_s scell_id;
18276 cause_c cause;
18278 // ...
18279
18280 // sequence methods
18281 SRSASN_CODE pack(bit_ref& bref) const;
18282 SRSASN_CODE unpack(cbit_ref& bref);
18283 void to_json(json_writer& j) const;
18284};
18285
18287
18288// SCell-FailedtoSetupMod-Item ::= SEQUENCE
18290 bool ext = false;
18291 bool cause_present = false;
18292 bool ie_exts_present = false;
18293 nr_cgi_s scell_id;
18294 cause_c cause;
18296 // ...
18297
18298 // sequence methods
18299 SRSASN_CODE pack(bit_ref& bref) const;
18300 SRSASN_CODE unpack(cbit_ref& bref);
18301 void to_json(json_writer& j) const;
18302};
18303
18305
18306// SCell-ToBeRemoved-Item ::= SEQUENCE
18308 bool ext = false;
18309 bool ie_exts_present = false;
18310 nr_cgi_s scell_id;
18312 // ...
18313
18314 // sequence methods
18315 SRSASN_CODE pack(bit_ref& bref) const;
18316 SRSASN_CODE unpack(cbit_ref& bref);
18317 void to_json(json_writer& j) const;
18318};
18319
18320// SCell-ToBeSetup-Item ::= SEQUENCE
18322 bool ext = false;
18323 bool scell_ul_cfg_present = false;
18324 nr_cgi_s scell_id;
18325 uint8_t scell_idx = 1;
18326 cell_ul_cfg_e scell_ul_cfg;
18328 // ...
18329
18330 // sequence methods
18331 SRSASN_CODE pack(bit_ref& bref) const;
18332 SRSASN_CODE unpack(cbit_ref& bref);
18333 void to_json(json_writer& j) const;
18334};
18335
18336// SCell-ToBeSetupMod-Item ::= SEQUENCE
18338 bool ext = false;
18339 bool scell_ul_cfg_present = false;
18340 nr_cgi_s scell_id;
18341 uint8_t scell_idx = 1;
18342 cell_ul_cfg_e scell_ul_cfg;
18344 // ...
18345
18346 // sequence methods
18347 SRSASN_CODE pack(bit_ref& bref) const;
18348 SRSASN_CODE unpack(cbit_ref& bref);
18349 void to_json(json_writer& j) const;
18350};
18351
18353
18354// SDTBearerConfig-List-Item ::= SEQUENCE
18356 bool ie_exts_present = false;
18357 sdt_bearer_type_c sdt_bearer_type;
18358 unbounded_octstring<true> sdt_rlc_bearer_cfg;
18360
18361 // sequence methods
18362 SRSASN_CODE pack(bit_ref& bref) const;
18363 SRSASN_CODE unpack(cbit_ref& bref);
18364 void to_json(json_writer& j) const;
18365};
18366
18367// SItype-ItemExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18369
18371
18372// SLDRBs-FailedToBeModified-Item ::= SEQUENCE
18374 bool cause_present = false;
18375 bool ie_exts_present = false;
18376 uint16_t sl_drb_id = 1;
18377 cause_c cause;
18379
18380 // sequence methods
18381 SRSASN_CODE pack(bit_ref& bref) const;
18382 SRSASN_CODE unpack(cbit_ref& bref);
18383 void to_json(json_writer& j) const;
18384};
18385
18387
18388// SLDRBs-FailedToBeSetup-Item ::= SEQUENCE
18390 bool cause_present = false;
18391 bool ie_exts_present = false;
18392 uint16_t sl_drb_id = 1;
18393 cause_c cause;
18395
18396 // sequence methods
18397 SRSASN_CODE pack(bit_ref& bref) const;
18398 SRSASN_CODE unpack(cbit_ref& bref);
18399 void to_json(json_writer& j) const;
18400};
18401
18403
18404// SLDRBs-FailedToBeSetupMod-Item ::= SEQUENCE
18406 bool cause_present = false;
18407 bool ie_exts_present = false;
18408 uint16_t sl_drb_id = 1;
18409 cause_c cause;
18411
18412 // sequence methods
18413 SRSASN_CODE pack(bit_ref& bref) const;
18414 SRSASN_CODE unpack(cbit_ref& bref);
18415 void to_json(json_writer& j) const;
18416};
18417
18419
18420// SLDRBs-Modified-Item ::= SEQUENCE
18422 bool ie_exts_present = false;
18423 uint16_t sl_drb_id = 1;
18425
18426 // sequence methods
18427 SRSASN_CODE pack(bit_ref& bref) const;
18428 SRSASN_CODE unpack(cbit_ref& bref);
18429 void to_json(json_writer& j) const;
18430};
18431
18433
18434// SLDRBs-ModifiedConf-Item ::= SEQUENCE
18436 bool ie_exts_present = false;
18437 uint16_t sl_drb_id = 1;
18439
18440 // sequence methods
18441 SRSASN_CODE pack(bit_ref& bref) const;
18442 SRSASN_CODE unpack(cbit_ref& bref);
18443 void to_json(json_writer& j) const;
18444};
18445
18447
18448// SLDRBs-Required-ToBeModified-Item ::= SEQUENCE
18450 bool ie_exts_present = false;
18451 uint16_t sl_drb_id = 1;
18453
18454 // sequence methods
18455 SRSASN_CODE pack(bit_ref& bref) const;
18456 SRSASN_CODE unpack(cbit_ref& bref);
18457 void to_json(json_writer& j) const;
18458};
18459
18461
18462// SLDRBs-Required-ToBeReleased-Item ::= SEQUENCE
18464 bool ie_exts_present = false;
18465 uint16_t sl_drb_id = 1;
18467
18468 // sequence methods
18469 SRSASN_CODE pack(bit_ref& bref) const;
18470 SRSASN_CODE unpack(cbit_ref& bref);
18471 void to_json(json_writer& j) const;
18472};
18473
18475
18476// SLDRBs-Setup-Item ::= SEQUENCE
18478 bool ie_exts_present = false;
18479 uint16_t sl_drb_id = 1;
18481
18482 // sequence methods
18483 SRSASN_CODE pack(bit_ref& bref) const;
18484 SRSASN_CODE unpack(cbit_ref& bref);
18485 void to_json(json_writer& j) const;
18486};
18487
18489
18490// SLDRBs-SetupMod-Item ::= SEQUENCE
18492 bool ie_exts_present = false;
18493 uint16_t sl_drb_id = 1;
18495
18496 // sequence methods
18497 SRSASN_CODE pack(bit_ref& bref) const;
18498 SRSASN_CODE unpack(cbit_ref& bref);
18499 void to_json(json_writer& j) const;
18500};
18501
18503
18504// SLDRBs-ToBeModified-Item ::= SEQUENCE
18506 bool sl_drb_info_present = false;
18507 bool rlc_mode_present = false;
18508 bool ie_exts_present = false;
18509 uint16_t sl_drb_id = 1;
18510 sl_drb_info_s sl_drb_info;
18511 rlc_mode_e rlc_mode;
18513
18514 // sequence methods
18515 SRSASN_CODE pack(bit_ref& bref) const;
18516 SRSASN_CODE unpack(cbit_ref& bref);
18517 void to_json(json_writer& j) const;
18518};
18519
18521
18522// SLDRBs-ToBeReleased-Item ::= SEQUENCE
18524 bool ie_exts_present = false;
18525 uint16_t sl_drb_id = 1;
18527
18528 // sequence methods
18529 SRSASN_CODE pack(bit_ref& bref) const;
18530 SRSASN_CODE unpack(cbit_ref& bref);
18531 void to_json(json_writer& j) const;
18532};
18533
18535
18536// SLDRBs-ToBeSetup-Item ::= SEQUENCE
18538 bool ie_exts_present = false;
18539 uint16_t sl_drb_id = 1;
18540 sl_drb_info_s sl_drb_info;
18541 rlc_mode_e rlc_mode;
18543
18544 // sequence methods
18545 SRSASN_CODE pack(bit_ref& bref) const;
18546 SRSASN_CODE unpack(cbit_ref& bref);
18547 void to_json(json_writer& j) const;
18548};
18549
18551
18552// SLDRBs-ToBeSetupMod-Item ::= SEQUENCE
18554 bool rlc_mode_present = false;
18555 bool ie_exts_present = false;
18556 uint16_t sl_drb_id = 1;
18557 sl_drb_info_s sl_drb_info;
18558 rlc_mode_e rlc_mode;
18560
18561 // sequence methods
18562 SRSASN_CODE pack(bit_ref& bref) const;
18563 SRSASN_CODE unpack(cbit_ref& bref);
18564 void to_json(json_writer& j) const;
18565};
18566
18567// SLDRXCycleItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18569
18570// SLDRXInformation ::= CHOICE
18572 struct types_opts {
18573 enum options { sldrx_cycle, nos_ldrx, choice_ext, nulltype } value;
18574
18575 const char* to_string() const;
18576 };
18578
18579 // choice methods
18580 sldrx_info_c() = default;
18581 sldrx_info_c(const sldrx_info_c& other);
18582 sldrx_info_c& operator=(const sldrx_info_c& other);
18583 ~sldrx_info_c() { destroy_(); }
18584 void set(types::options e = types::nulltype);
18585 types type() const { return type_; }
18586 SRSASN_CODE pack(bit_ref& bref) const;
18587 SRSASN_CODE unpack(cbit_ref& bref);
18588 void to_json(json_writer& j) const;
18589 // getters
18590 sldrx_cycle_len_e& sldrx_cycle()
18591 {
18592 assert_choice_type(types::sldrx_cycle, type_, "SLDRXInformation");
18593 return c.get<sldrx_cycle_len_e>();
18594 }
18595 sldrx_cfg_ind_e& nos_ldrx()
18596 {
18597 assert_choice_type(types::nos_ldrx, type_, "SLDRXInformation");
18598 return c.get<sldrx_cfg_ind_e>();
18599 }
18600 protocol_ie_single_container_s<sldrx_info_ext_ies_o>& choice_ext()
18601 {
18602 assert_choice_type(types::choice_ext, type_, "SLDRXInformation");
18603 return c.get<protocol_ie_single_container_s<sldrx_info_ext_ies_o>>();
18604 }
18605 const sldrx_cycle_len_e& sldrx_cycle() const
18606 {
18607 assert_choice_type(types::sldrx_cycle, type_, "SLDRXInformation");
18608 return c.get<sldrx_cycle_len_e>();
18609 }
18610 const sldrx_cfg_ind_e& nos_ldrx() const
18611 {
18612 assert_choice_type(types::nos_ldrx, type_, "SLDRXInformation");
18613 return c.get<sldrx_cfg_ind_e>();
18614 }
18615 const protocol_ie_single_container_s<sldrx_info_ext_ies_o>& choice_ext() const
18616 {
18617 assert_choice_type(types::choice_ext, type_, "SLDRXInformation");
18618 return c.get<protocol_ie_single_container_s<sldrx_info_ext_ies_o>>();
18619 }
18620 sldrx_cycle_len_e& set_sldrx_cycle();
18621 sldrx_cfg_ind_e& set_nos_ldrx();
18622 protocol_ie_single_container_s<sldrx_info_ext_ies_o>& set_choice_ext();
18623
18624private:
18625 types type_;
18626 choice_buffer_t<protocol_ie_single_container_s<sldrx_info_ext_ies_o>> c;
18627
18628 void destroy_();
18629};
18630
18631using srbs_failed_to_be_setup_item_ext_ies_container = protocol_ext_container_empty_l;
18632
18633// SRBs-FailedToBeSetup-Item ::= SEQUENCE
18635 bool ext = false;
18636 bool cause_present = false;
18637 bool ie_exts_present = false;
18638 uint8_t srb_id = 0;
18639 cause_c cause;
18641 // ...
18642
18643 // sequence methods
18644 SRSASN_CODE pack(bit_ref& bref) const;
18645 SRSASN_CODE unpack(cbit_ref& bref);
18646 void to_json(json_writer& j) const;
18647};
18648
18650
18651// SRBs-FailedToBeSetupMod-Item ::= SEQUENCE
18653 bool ext = false;
18654 bool cause_present = false;
18655 bool ie_exts_present = false;
18656 uint8_t srb_id = 0;
18657 cause_c cause;
18659 // ...
18660
18661 // sequence methods
18662 SRSASN_CODE pack(bit_ref& bref) const;
18663 SRSASN_CODE unpack(cbit_ref& bref);
18664 void to_json(json_writer& j) const;
18665};
18666
18668
18669// SRBs-Modified-Item ::= SEQUENCE
18671 bool ext = false;
18672 bool ie_exts_present = false;
18673 uint8_t srb_id = 0;
18674 uint8_t lcid = 1;
18676 // ...
18677
18678 // sequence methods
18679 SRSASN_CODE pack(bit_ref& bref) const;
18680 SRSASN_CODE unpack(cbit_ref& bref);
18681 void to_json(json_writer& j) const;
18682};
18683
18685
18686// SRBs-Required-ToBeReleased-Item ::= SEQUENCE
18688 bool ext = false;
18689 bool ie_exts_present = false;
18690 uint8_t srb_id = 0;
18692 // ...
18693
18694 // sequence methods
18695 SRSASN_CODE pack(bit_ref& bref) const;
18696 SRSASN_CODE unpack(cbit_ref& bref);
18697 void to_json(json_writer& j) const;
18698};
18699
18701
18702// SRBs-Setup-Item ::= SEQUENCE
18704 bool ext = false;
18705 bool ie_exts_present = false;
18706 uint8_t srb_id = 0;
18707 uint8_t lcid = 1;
18709 // ...
18710
18711 // sequence methods
18712 SRSASN_CODE pack(bit_ref& bref) const;
18713 SRSASN_CODE unpack(cbit_ref& bref);
18714 void to_json(json_writer& j) const;
18715};
18716
18718
18719// SRBs-SetupMod-Item ::= SEQUENCE
18721 bool ext = false;
18722 bool ie_exts_present = false;
18723 uint8_t srb_id = 0;
18724 uint8_t lcid = 1;
18726 // ...
18727
18728 // sequence methods
18729 SRSASN_CODE pack(bit_ref& bref) const;
18730 SRSASN_CODE unpack(cbit_ref& bref);
18731 void to_json(json_writer& j) const;
18732};
18733
18735
18736// SRBs-ToBeReleased-Item ::= SEQUENCE
18738 bool ext = false;
18739 bool ie_exts_present = false;
18740 uint8_t srb_id = 0;
18742 // ...
18743
18744 // sequence methods
18745 SRSASN_CODE pack(bit_ref& bref) const;
18746 SRSASN_CODE unpack(cbit_ref& bref);
18747 void to_json(json_writer& j) const;
18748};
18749
18751 bool add_dupl_ind_present = false;
18752 bool sdt_rlc_bearer_cfg_present = false;
18753 bool srb_map_info_present = false;
18754 add_dupl_ind_e add_dupl_ind;
18755 unbounded_octstring<true> sdt_rlc_bearer_cfg;
18757
18758 // sequence methods
18759 SRSASN_CODE pack(bit_ref& bref) const;
18760 SRSASN_CODE unpack(cbit_ref& bref);
18761 void to_json(json_writer& j) const;
18762};
18763
18764// SRBs-ToBeSetup-Item ::= SEQUENCE
18766 bool ext = false;
18767 bool dupl_ind_present = false;
18768 bool ie_exts_present = false;
18769 uint8_t srb_id = 0;
18770 dupl_ind_e dupl_ind;
18772 // ...
18773
18774 // sequence methods
18775 SRSASN_CODE pack(bit_ref& bref) const;
18776 SRSASN_CODE unpack(cbit_ref& bref);
18777 void to_json(json_writer& j) const;
18778};
18779
18781 bool add_dupl_ind_present = false;
18782 bool srb_map_info_present = false;
18783 bool cg_sd_tind_setup_present = false;
18784 add_dupl_ind_e add_dupl_ind;
18786 cg_sd_tind_setup_e cg_sd_tind_setup;
18787
18788 // sequence methods
18789 SRSASN_CODE pack(bit_ref& bref) const;
18790 SRSASN_CODE unpack(cbit_ref& bref);
18791 void to_json(json_writer& j) const;
18792};
18793
18794// SRBs-ToBeSetupMod-Item ::= SEQUENCE
18796 bool ext = false;
18797 bool dupl_ind_present = false;
18798 bool ie_exts_present = false;
18799 uint8_t srb_id = 0;
18800 dupl_ind_e dupl_ind;
18802 // ...
18803
18804 // sequence methods
18805 SRSASN_CODE pack(bit_ref& bref) const;
18806 SRSASN_CODE unpack(cbit_ref& bref);
18807 void to_json(json_writer& j) const;
18808};
18809
18811
18812// SRSCarrier-List-Item ::= SEQUENCE
18814 bool pci_present = false;
18815 bool ie_exts_present = false;
18816 uint32_t point_a = 0;
18817 ul_ch_bw_per_scs_list_l ul_ch_bw_per_scs_list;
18818 active_ul_bwp_s active_ul_bwp;
18819 uint16_t pci = 0;
18821
18822 // sequence methods
18823 SRSASN_CODE pack(bit_ref& bref) const;
18824 SRSASN_CODE unpack(cbit_ref& bref);
18825 void to_json(json_writer& j) const;
18826};
18827
18828// SRSResourceSetItem ::= SEQUENCE
18830 bool num_srs_resperset_present = false;
18831 bool spatial_relation_info_present = false;
18832 bool pathloss_ref_info_present = false;
18833 uint8_t num_srs_resperset = 1;
18834 periodicity_list_l periodicity_list;
18835 spatial_relation_info_s spatial_relation_info;
18836 pathloss_ref_info_s pathloss_ref_info;
18838
18839 // sequence methods
18840 SRSASN_CODE pack(bit_ref& bref) const;
18841 SRSASN_CODE unpack(cbit_ref& bref);
18842 void to_json(json_writer& j) const;
18843};
18844
18846
18847// Search-window-information ::= SEQUENCE
18849 bool ie_exts_present = false;
18850 int16_t expected_propagation_delay = -3841;
18851 uint8_t delay_uncertainty = 1;
18853
18854 // sequence methods
18855 SRSASN_CODE pack(bit_ref& bref) const;
18856 SRSASN_CODE unpack(cbit_ref& bref);
18857 void to_json(json_writer& j) const;
18858};
18859
18861
18862// Served-Cells-To-Add-Item ::= SEQUENCE
18864 bool ext = false;
18865 bool gnb_du_sys_info_present = false;
18866 bool ie_exts_present = false;
18867 served_cell_info_s served_cell_info;
18868 gnb_du_sys_info_s gnb_du_sys_info;
18870 // ...
18871
18872 // sequence methods
18873 SRSASN_CODE pack(bit_ref& bref) const;
18874 SRSASN_CODE unpack(cbit_ref& bref);
18875 void to_json(json_writer& j) const;
18876};
18877
18879
18880// Served-Cells-To-Delete-Item ::= SEQUENCE
18882 bool ext = false;
18883 bool ie_exts_present = false;
18884 nr_cgi_s old_nr_cgi;
18886 // ...
18887
18888 // sequence methods
18889 SRSASN_CODE pack(bit_ref& bref) const;
18890 SRSASN_CODE unpack(cbit_ref& bref);
18891 void to_json(json_writer& j) const;
18892};
18893
18895
18896// Served-Cells-To-Modify-Item ::= SEQUENCE
18898 bool ext = false;
18899 bool gnb_du_sys_info_present = false;
18900 bool ie_exts_present = false;
18901 nr_cgi_s old_nr_cgi;
18902 served_cell_info_s served_cell_info;
18903 gnb_du_sys_info_s gnb_du_sys_info;
18905 // ...
18906
18907 // sequence methods
18908 SRSASN_CODE pack(bit_ref& bref) const;
18909 SRSASN_CODE unpack(cbit_ref& bref);
18910 void to_json(json_writer& j) const;
18911};
18912
18913// Serving-Cells-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18915
18917
18918// ServingCellMO-List-Item ::= SEQUENCE
18920 bool ie_exts_present = false;
18921 uint8_t serving_cell_mo = 1;
18922 uint32_t ssb_freq = 0;
18924
18925 // sequence methods
18926 SRSASN_CODE pack(bit_ref& bref) const;
18927 SRSASN_CODE unpack(cbit_ref& bref);
18928 void to_json(json_writer& j) const;
18929};
18930
18931// ServingCellMO-encoded-in-CGC-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18933
18934// TRP-MeasurementRequestItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18936 // Extension ::= OPEN TYPE
18937 struct ext_c {
18938 struct types_opts {
18939 enum options { nr_cgi, ao_a_search_win, nof_trp_rx_teg, nof_trp_rx_tx_teg, nulltype } value;
18940
18941 const char* to_string() const;
18942 };
18944
18945 // choice methods
18946 ext_c() = default;
18947 void set(types::options e = types::nulltype);
18948 types type() const { return type_; }
18949 SRSASN_CODE pack(bit_ref& bref) const;
18950 SRSASN_CODE unpack(cbit_ref& bref);
18951 void to_json(json_writer& j) const;
18952 // getters
18953 nr_cgi_s& nr_cgi();
18954 ao_a_assist_info_s& ao_a_search_win();
18955 nof_trp_rx_teg_e& nof_trp_rx_teg();
18956 nof_trp_rx_tx_teg_e& nof_trp_rx_tx_teg();
18957 const nr_cgi_s& nr_cgi() const;
18958 const ao_a_assist_info_s& ao_a_search_win() const;
18959 const nof_trp_rx_teg_e& nof_trp_rx_teg() const;
18960 const nof_trp_rx_tx_teg_e& nof_trp_rx_tx_teg() const;
18961
18962 private:
18963 types type_;
18965 };
18966
18967 // members lookup methods
18968 static uint32_t idx_to_id(uint32_t idx);
18969 static bool is_id_valid(const uint32_t& id);
18970 static crit_e get_crit(const uint32_t& id);
18971 static ext_c get_ext(const uint32_t& id);
18972 static presence_e get_presence(const uint32_t& id);
18973};
18974
18975// TRP-MeasurementUpdateItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
18977 // Extension ::= OPEN TYPE
18978 struct ext_c {
18979 struct types_opts {
18980 enum options { nof_trp_rx_teg, nof_trp_rx_tx_teg, nulltype } value;
18981
18982 const char* to_string() const;
18983 };
18985
18986 // choice methods
18987 ext_c() = default;
18988 void set(types::options e = types::nulltype);
18989 types type() const { return type_; }
18990 SRSASN_CODE pack(bit_ref& bref) const;
18991 SRSASN_CODE unpack(cbit_ref& bref);
18992 void to_json(json_writer& j) const;
18993 // getters
18994 nof_trp_rx_teg_e& nof_trp_rx_teg();
18995 nof_trp_rx_tx_teg_e& nof_trp_rx_tx_teg();
18996 const nof_trp_rx_teg_e& nof_trp_rx_teg() const;
18997 const nof_trp_rx_tx_teg_e& nof_trp_rx_tx_teg() const;
18998
18999 private:
19000 types type_;
19002 };
19003
19004 // members lookup methods
19005 static uint32_t idx_to_id(uint32_t idx);
19006 static bool is_id_valid(const uint32_t& id);
19007 static crit_e get_crit(const uint32_t& id);
19008 static ext_c get_ext(const uint32_t& id);
19009 static presence_e get_presence(const uint32_t& id);
19010};
19011
19012// TRP-PRS-Info-List-Item-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19013using trp_prs_info_list_item_ext_ies_o = protocol_ext_empty_o;
19014
19015using trp_info_item_ext_ies_container = protocol_ext_container_empty_l;
19016
19017// TRPInformationItem ::= SEQUENCE
19019 bool ie_exts_present = false;
19020 trp_info_s trp_info;
19022
19023 // sequence methods
19024 SRSASN_CODE pack(bit_ref& bref) const;
19025 SRSASN_CODE unpack(cbit_ref& bref);
19026 void to_json(json_writer& j) const;
19027};
19028
19029// TRPInformationTypeItem ::= ENUMERATED
19031 enum options {
19032 nr_pci,
19033 ng_ran_cgi,
19034 arfcn,
19035 prs_cfg,
19036 ssb_cfg,
19037 sfn_init_time,
19038 spatial_direct_info,
19039 geo_coord,
19040 // ...
19041 trp_type,
19042 ondemand_prs,
19043 trp_tx_teg,
19044 beam_ant_info,
19045 nulltype
19046 } value;
19047
19048 const char* to_string() const;
19049};
19051
19052// TRPListItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19054
19056
19057// Transport-UP-Layer-Address-Info-To-Add-Item ::= SEQUENCE
19059 bool ie_exts_present = false;
19060 bounded_bitstring<1, 160, true, true> ip_sec_transport_layer_address;
19061 gtp_tlas_l gtp_transport_layer_address_to_add;
19063
19064 // sequence methods
19065 SRSASN_CODE pack(bit_ref& bref) const;
19066 SRSASN_CODE unpack(cbit_ref& bref);
19067 void to_json(json_writer& j) const;
19068};
19069
19071
19072// Transport-UP-Layer-Address-Info-To-Remove-Item ::= SEQUENCE
19074 bool ie_exts_present = false;
19075 bounded_bitstring<1, 160, true, true> ip_sec_transport_layer_address;
19076 gtp_tlas_l gtp_transport_layer_address_to_rem;
19078
19079 // sequence methods
19080 SRSASN_CODE pack(bit_ref& bref) const;
19081 SRSASN_CODE unpack(cbit_ref& bref);
19082 void to_json(json_writer& j) const;
19083};
19084
19085// UACPLMN-Item ::= SEQUENCE
19088 uac_type_list_l uac_type_list;
19090
19091 // sequence methods
19092 SRSASN_CODE pack(bit_ref& bref) const;
19093 SRSASN_CODE unpack(cbit_ref& bref);
19094 void to_json(json_writer& j) const;
19095};
19096
19098
19099// UE-MulticastMRBs-ConfirmedToBeModified-Item ::= SEQUENCE
19101 bool mrb_type_recfg_present = false;
19102 bool ie_exts_present = false;
19103 uint16_t mrb_id = 1;
19104 mbsptp_retx_tunnel_required_e mrb_type_recfg;
19106
19107 // sequence methods
19108 SRSASN_CODE pack(bit_ref& bref) const;
19109 SRSASN_CODE unpack(cbit_ref& bref);
19110 void to_json(json_writer& j) const;
19111};
19112
19113// UE-MulticastMRBs-RequiredToBeModified-Item ::= SEQUENCE
19116 enum options { true_value, /*...*/ nulltype } value;
19117
19118 const char* to_string() const;
19119 };
19122 enum options {
19123 rlc_um_ptp,
19124 rlc_am_ptp,
19125 rlc_um_dl_ptm,
19126 two_rlc_um_dl_ptp_and_dl_ptm,
19127 three_rlc_um_dl_ptp_ul_ptp_dl_ptm,
19128 two_rlc_am_ptp_um_dl_ptm,
19129 // ...
19130 nulltype
19131 } value;
19132
19133 const char* to_string() const;
19134 };
19136
19137 // member variables
19138 bool mrb_type_recfg_present = false;
19139 bool mrb_recfg_rlc_type_present = false;
19140 uint16_t mrb_id = 1;
19141 mrb_type_recfg_e_ mrb_type_recfg;
19142 mrb_recfg_rlc_type_e_ mrb_recfg_rlc_type;
19144
19145 // sequence methods
19146 SRSASN_CODE pack(bit_ref& bref) const;
19147 SRSASN_CODE unpack(cbit_ref& bref);
19148 void to_json(json_writer& j) const;
19149};
19150
19152
19153// UE-MulticastMRBs-RequiredToBeReleased-Item ::= SEQUENCE
19155 bool ie_exts_present = false;
19156 uint16_t mrb_id = 1;
19158
19159 // sequence methods
19160 SRSASN_CODE pack(bit_ref& bref) const;
19161 SRSASN_CODE unpack(cbit_ref& bref);
19162 void to_json(json_writer& j) const;
19163};
19164
19166
19167// UE-MulticastMRBs-Setup-Item ::= SEQUENCE
19169 bool multicast_f1_u_context_ref_cu_present = false;
19170 bool ie_exts_present = false;
19171 uint16_t mrb_id = 1;
19172 fixed_octstring<4, true> multicast_f1_u_context_ref_cu;
19174
19175 // sequence methods
19176 SRSASN_CODE pack(bit_ref& bref) const;
19177 SRSASN_CODE unpack(cbit_ref& bref);
19178 void to_json(json_writer& j) const;
19179};
19180
19182
19183// UE-MulticastMRBs-ToBeReleased-Item ::= SEQUENCE
19185 bool ie_exts_present = false;
19186 uint16_t mrb_id = 1;
19188
19189 // sequence methods
19190 SRSASN_CODE pack(bit_ref& bref) const;
19191 SRSASN_CODE unpack(cbit_ref& bref);
19192 void to_json(json_writer& j) const;
19193};
19194
19195// UE-MulticastMRBs-ToBeSetup-Item ::= SEQUENCE
19197 bool mbs_ptp_retx_tunnel_required_present = false;
19198 bool mbs_ptp_forwarding_required_info_present = false;
19199 uint16_t mrb_id = 1;
19200 mbsptp_retx_tunnel_required_e mbs_ptp_retx_tunnel_required;
19201 mrb_progress_info_c mbs_ptp_forwarding_required_info;
19203
19204 // sequence methods
19205 SRSASN_CODE pack(bit_ref& bref) const;
19206 SRSASN_CODE unpack(cbit_ref& bref);
19207 void to_json(json_writer& j) const;
19208};
19209
19211
19212// UE-MulticastMRBs-ToBeSetup-atModify-Item ::= SEQUENCE
19214 bool mbs_ptp_retx_tunnel_required_present = false;
19215 bool mbs_ptp_forwarding_required_info_present = false;
19216 bool ie_exts_present = false;
19217 uint16_t mrb_id = 1;
19218 mbsptp_retx_tunnel_required_e mbs_ptp_retx_tunnel_required;
19219 mrb_progress_info_c mbs_ptp_forwarding_required_info;
19221
19222 // sequence methods
19223 SRSASN_CODE pack(bit_ref& bref) const;
19224 SRSASN_CODE unpack(cbit_ref& bref);
19225 void to_json(json_writer& j) const;
19226};
19227
19229
19230// UEIdentity-List-For-Paging-Item ::= SEQUENCE
19232 bool paging_drx_present = false;
19233 bool ie_exts_present = false;
19234 ue_id_idx_value_c ue_id_idx_value;
19235 paging_drx_e paging_drx;
19237
19238 // sequence methods
19239 SRSASN_CODE pack(bit_ref& bref) const;
19240 SRSASN_CODE unpack(cbit_ref& bref);
19241 void to_json(json_writer& j) const;
19242};
19243
19245
19246// UL-BH-Non-UP-Traffic-Mapping-Item ::= SEQUENCE
19248 bool ie_exts_present = false;
19249 non_up_traffic_type_e non_up_traffic_type;
19250 bh_info_s bh_info;
19252
19253 // sequence methods
19254 SRSASN_CODE pack(bit_ref& bref) const;
19255 SRSASN_CODE unpack(cbit_ref& bref);
19256 void to_json(json_writer& j) const;
19257};
19258
19260
19261// UL-UP-TNL-Address-to-Update-List-Item ::= SEQUENCE
19263 bool ext = false;
19264 bool ie_exts_present = false;
19268 // ...
19269
19270 // sequence methods
19271 SRSASN_CODE pack(bit_ref& bref) const;
19272 SRSASN_CODE unpack(cbit_ref& bref);
19273 void to_json(json_writer& j) const;
19274};
19275
19277
19278// UL-UP-TNL-Information-to-Update-List-Item ::= SEQUENCE
19280 bool ext = false;
19281 bool new_ul_up_tnl_info_present = false;
19282 bool ie_exts_present = false;
19283 up_transport_layer_info_c ul_up_tnl_info;
19284 up_transport_layer_info_c new_ul_up_tnl_info;
19285 bh_info_s bh_info;
19287 // ...
19288
19289 // sequence methods
19290 SRSASN_CODE pack(bit_ref& bref) const;
19291 SRSASN_CODE unpack(cbit_ref& bref);
19292 void to_json(json_writer& j) const;
19293};
19294
19295// UuRLCChannelFailedToBeModifiedItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19297
19298// UuRLCChannelFailedToBeSetupItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19300
19301// UuRLCChannelModifiedItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19303
19304// UuRLCChannelQoSInformation ::= CHOICE
19307 enum options { srb0, srb1, srb2, /*...*/ nulltype } value;
19308 typedef uint8_t number_type;
19309
19310 const char* to_string() const;
19311 uint8_t to_number() const;
19312 };
19314 struct types_opts {
19315 enum options { uu_rlc_ch_qos, uu_ctrl_plane_traffic_type, choice_ext, nulltype } value;
19316
19317 const char* to_string() const;
19318 };
19320
19321 // choice methods
19322 uu_rlc_ch_qos_info_c() = default;
19324 uu_rlc_ch_qos_info_c& operator=(const uu_rlc_ch_qos_info_c& other);
19325 ~uu_rlc_ch_qos_info_c() { destroy_(); }
19326 void set(types::options e = types::nulltype);
19327 types type() const { return type_; }
19328 SRSASN_CODE pack(bit_ref& bref) const;
19329 SRSASN_CODE unpack(cbit_ref& bref);
19330 void to_json(json_writer& j) const;
19331 // getters
19332 qos_flow_level_qos_params_s& uu_rlc_ch_qos()
19333 {
19334 assert_choice_type(types::uu_rlc_ch_qos, type_, "UuRLCChannelQoSInformation");
19335 return c.get<qos_flow_level_qos_params_s>();
19336 }
19337 uu_ctrl_plane_traffic_type_e_& uu_ctrl_plane_traffic_type()
19338 {
19339 assert_choice_type(types::uu_ctrl_plane_traffic_type, type_, "UuRLCChannelQoSInformation");
19340 return c.get<uu_ctrl_plane_traffic_type_e_>();
19341 }
19342 protocol_ie_single_container_s<uu_rlc_ch_qos_info_ext_ies_o>& choice_ext()
19343 {
19344 assert_choice_type(types::choice_ext, type_, "UuRLCChannelQoSInformation");
19345 return c.get<protocol_ie_single_container_s<uu_rlc_ch_qos_info_ext_ies_o>>();
19346 }
19347 const qos_flow_level_qos_params_s& uu_rlc_ch_qos() const
19348 {
19349 assert_choice_type(types::uu_rlc_ch_qos, type_, "UuRLCChannelQoSInformation");
19350 return c.get<qos_flow_level_qos_params_s>();
19351 }
19352 const uu_ctrl_plane_traffic_type_e_& uu_ctrl_plane_traffic_type() const
19353 {
19354 assert_choice_type(types::uu_ctrl_plane_traffic_type, type_, "UuRLCChannelQoSInformation");
19355 return c.get<uu_ctrl_plane_traffic_type_e_>();
19356 }
19357 const protocol_ie_single_container_s<uu_rlc_ch_qos_info_ext_ies_o>& choice_ext() const
19358 {
19359 assert_choice_type(types::choice_ext, type_, "UuRLCChannelQoSInformation");
19360 return c.get<protocol_ie_single_container_s<uu_rlc_ch_qos_info_ext_ies_o>>();
19361 }
19362 qos_flow_level_qos_params_s& set_uu_rlc_ch_qos();
19363 uu_ctrl_plane_traffic_type_e_& set_uu_ctrl_plane_traffic_type();
19364 protocol_ie_single_container_s<uu_rlc_ch_qos_info_ext_ies_o>& set_choice_ext();
19365
19366private:
19367 types type_;
19368 choice_buffer_t<protocol_ie_single_container_s<uu_rlc_ch_qos_info_ext_ies_o>, qos_flow_level_qos_params_s> c;
19369
19370 void destroy_();
19371};
19372
19373// UuRLCChannelRequiredToBeModifiedItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19374using uu_rlc_ch_required_to_be_modified_item_ext_ies_o = protocol_ext_empty_o;
19375
19376// UuRLCChannelRequiredToBeReleasedItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19377using uu_rlc_ch_required_to_be_released_item_ext_ies_o = protocol_ext_empty_o;
19378
19379// UuRLCChannelSetupItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19380using uu_rlc_ch_setup_item_ext_ies_o = protocol_ext_empty_o;
19381
19382// UuRLCChannelToBeModifiedItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19383using uu_rlc_ch_to_be_modified_item_ext_ies_o = protocol_ext_empty_o;
19384
19385// UuRLCChannelToBeReleasedItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19386using uu_rlc_ch_to_be_released_item_ext_ies_o = protocol_ext_empty_o;
19387
19388// UuRLCChannelToBeSetupItem-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19389using uu_rlc_ch_to_be_setup_item_ext_ies_o = protocol_ext_empty_o;
19390
19391// EventType ::= ENUMERATED
19393 enum options { on_demand, periodic, stop, /*...*/ nulltype } value;
19394
19395 const char* to_string() const;
19396};
19398
19399// F1CPathNRDC ::= ENUMERATED
19401 enum options { mcg, scg, both, nulltype } value;
19402
19403 const char* to_string() const;
19404};
19406
19407// F1CPathNSA ::= ENUMERATED
19409 enum options { lte, nr, both, nulltype } value;
19410
19411 const char* to_string() const;
19412};
19414
19415// F1CTransferPath-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19417
19418// F1CTransferPathNRDC-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19420
19421// FiveG-ProSeAuthorized-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19423
19424// FiveG-ProSeDirectCommunication ::= ENUMERATED
19426 enum options { authorized, not_authorized, /*...*/ nulltype } value;
19427
19428 const char* to_string() const;
19429};
19431
19432// FiveG-ProSeDirectDiscovery ::= ENUMERATED
19434 enum options { authorized, not_authorized, /*...*/ nulltype } value;
19435
19436 const char* to_string() const;
19437};
19439
19440// FiveG-ProSeLayer2RemoteUE ::= ENUMERATED
19442 enum options { authorized, not_authorized, /*...*/ nulltype } value;
19443
19444 const char* to_string() const;
19445};
19447
19448// FiveG-ProSeLayer2UEtoNetworkRelay ::= ENUMERATED
19450 enum options { authorized, not_authorized, /*...*/ nulltype } value;
19451
19452 const char* to_string() const;
19453};
19455
19456// FiveG-ProSeLayer3UEtoNetworkRelay ::= ENUMERATED
19458 enum options { authorized, not_authorized, /*...*/ nulltype } value;
19459
19460 const char* to_string() const;
19461};
19463
19465
19466// GNBDUUESliceMaximumBitRateItem ::= SEQUENCE
19468 bool ext = false;
19469 bool ie_exts_present = false;
19470 snssai_s snssai;
19471 uint64_t ue_slice_max_bit_rate_ul = 0;
19473 // ...
19474
19475 // sequence methods
19476 SRSASN_CODE pack(bit_ref& bref) const;
19477 SRSASN_CODE unpack(cbit_ref& bref);
19478 void to_json(json_writer& j) const;
19479};
19480
19481// HardwareLoadIndicator-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19483
19484// IAB-Congestion-Indication-List ::= SEQUENCE (SIZE (1..1024)) OF IAB-Congestion-Indication-Item
19486
19487// IAB-Congestion-Indication-List-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19489
19490// IAB-TNL-Addresses-Exception-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19492
19493// IABIPv6RequestType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
19495
19496// IABTNLAddressList ::= SEQUENCE (SIZE (1..1024)) OF IABTNLAddress-Item
19498
19500
19501// IABTNLAddressesRequested ::= SEQUENCE
19503 bool tnl_addresses_or_prefixes_requested_all_traffic_present = false;
19504 bool tnl_addresses_or_prefixes_requested_f1_c_present = false;
19505 bool tnl_addresses_or_prefixes_requested_f1_u_present = false;
19506 bool tnl_addresses_or_prefixes_requested_no_nf1_present = false;
19507 bool ie_exts_present = false;
19508 uint16_t tnl_addresses_or_prefixes_requested_all_traffic = 1;
19509 uint16_t tnl_addresses_or_prefixes_requested_f1_c = 1;
19510 uint16_t tnl_addresses_or_prefixes_requested_f1_u = 1;
19511 uint16_t tnl_addresses_or_prefixes_requested_no_nf1 = 1;
19513
19514 // sequence methods
19515 SRSASN_CODE pack(bit_ref& bref) const;
19516 SRSASN_CODE unpack(cbit_ref& bref);
19517 void to_json(json_writer& j) const;
19518};
19519
19520// IABv4AddressesRequested-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19522
19523// LTEUESidelinkAggregateMaximumBitrate-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19525
19526// LTEV2XServicesAuthorized-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19528
19529// MBSMulticastF1UContextDescriptor-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19531
19533
19534// MulticastMBSSessionList-Item ::= SEQUENCE
19536 bool ext = false;
19537 bool ie_exts_present = false;
19538 mbs_session_id_s mbs_session_id;
19540 // ...
19541
19542 // sequence methods
19543 SRSASN_CODE pack(bit_ref& bref) const;
19544 SRSASN_CODE unpack(cbit_ref& bref);
19545 void to_json(json_writer& j) const;
19546};
19547
19548// NRPaging-Time-Window ::= ENUMERATED
19550 enum options {
19551 s1,
19552 s2,
19553 s3,
19554 s4,
19555 s5,
19556 s6,
19557 s7,
19558 s8,
19559 s9,
19560 s10,
19561 s11,
19562 s12,
19563 s13,
19564 s14,
19565 s15,
19566 s16,
19567 // ...
19568 s17,
19569 s18,
19570 s19,
19571 s20,
19572 s21,
19573 s22,
19574 s23,
19575 s24,
19576 s25,
19577 s26,
19578 s27,
19579 s28,
19580 s29,
19581 s30,
19582 s31,
19583 s32,
19584 nulltype
19585 } value;
19586 typedef uint8_t number_type;
19587
19588 const char* to_string() const;
19589 uint8_t to_number() const;
19590};
19592
19593// NRPaging-eDRX-Cycle-Idle ::= ENUMERATED
19595 enum options {
19596 hfquarter,
19597 hfhalf,
19598 hf1,
19599 hf2,
19600 hf4,
19601 hf8,
19602 hf16,
19603 hf32,
19604 hf64,
19605 hf128,
19606 hf256,
19607 hf512,
19608 hf1024,
19609 /*...*/ nulltype
19610 } value;
19611 typedef float number_type;
19612
19613 const char* to_string() const;
19614 float to_number() const;
19615 const char* to_number_string() const;
19616};
19618
19619// NRPaging-eDRX-Cycle-Inactive ::= ENUMERATED
19621 enum options { hfquarter, hfhalf, hf1, /*...*/ nulltype } value;
19622 typedef float number_type;
19623
19624 const char* to_string() const;
19625 float to_number() const;
19626 const char* to_number_string() const;
19627};
19629
19630// NRPagingeDRXInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19632
19633// NRPagingeDRXInformationforRRCINACTIVE-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19635
19636// NRUESidelinkAggregateMaximumBitrate-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19638
19639// NRV2XServicesAuthorized-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19641
19643
19644// Neighbour-Node-Cells-List-Item ::= SEQUENCE
19647 enum options { true_value, /*...*/ nulltype } value;
19648
19649 const char* to_string() const;
19650 };
19652
19653 // member variables
19654 bool gnb_cu_ue_f1ap_id_present = false;
19655 bool gnb_du_ue_f1ap_id_present = false;
19656 bool peer_parent_node_ind_present = false;
19657 bool iab_du_cell_res_cfg_mode_info_present = false;
19658 bool iab_stc_info_present = false;
19659 bool ie_exts_present = false;
19660 nr_cgi_s nr_cgi;
19661 uint64_t gnb_cu_ue_f1ap_id = 0;
19662 uint64_t gnb_du_ue_f1ap_id = 0;
19663 peer_parent_node_ind_e_ peer_parent_node_ind;
19664 iab_du_cell_res_cfg_mode_info_c iab_du_cell_res_cfg_mode_info;
19665 iab_stc_info_s iab_stc_info;
19666 unbounded_octstring<true> rach_cfg_common;
19667 unbounded_octstring<true> rach_cfg_common_iab;
19668 unbounded_octstring<true> csi_rs_cfg;
19670 unbounded_octstring<true> pdcch_cfg_sib1;
19671 unbounded_octstring<true> scs_common;
19673
19674 // sequence methods
19675 SRSASN_CODE pack(bit_ref& bref) const;
19676 SRSASN_CODE unpack(cbit_ref& bref);
19677 void to_json(json_writer& j) const;
19678};
19679
19681
19682// PC5RLCChannelFailedToBeModifiedItem ::= SEQUENCE
19684 bool ext = false;
19685 bool remote_ue_local_id_present = false;
19686 bool cause_present = false;
19687 bool ie_exts_present = false;
19688 uint16_t pc5_rlc_ch_id = 1;
19689 uint16_t remote_ue_local_id = 0;
19690 cause_c cause;
19692 // ...
19693
19694 // sequence methods
19695 SRSASN_CODE pack(bit_ref& bref) const;
19696 SRSASN_CODE unpack(cbit_ref& bref);
19697 void to_json(json_writer& j) const;
19698};
19699
19701
19702// PC5RLCChannelFailedToBeSetupItem ::= SEQUENCE
19704 bool ext = false;
19705 bool remote_ue_local_id_present = false;
19706 bool cause_present = false;
19707 bool ie_exts_present = false;
19708 uint16_t pc5_rlc_ch_id = 1;
19709 uint16_t remote_ue_local_id = 0;
19710 cause_c cause;
19712 // ...
19713
19714 // sequence methods
19715 SRSASN_CODE pack(bit_ref& bref) const;
19716 SRSASN_CODE unpack(cbit_ref& bref);
19717 void to_json(json_writer& j) const;
19718};
19719
19721
19722// PC5RLCChannelModifiedItem ::= SEQUENCE
19724 bool ext = false;
19725 bool remote_ue_local_id_present = false;
19726 bool ie_exts_present = false;
19727 uint16_t pc5_rlc_ch_id = 1;
19728 uint16_t remote_ue_local_id = 0;
19730 // ...
19731
19732 // sequence methods
19733 SRSASN_CODE pack(bit_ref& bref) const;
19734 SRSASN_CODE unpack(cbit_ref& bref);
19735 void to_json(json_writer& j) const;
19736};
19737
19739
19740// PC5RLCChannelRequiredToBeModifiedItem ::= SEQUENCE
19742 bool ext = false;
19743 bool remote_ue_local_id_present = false;
19744 bool ie_exts_present = false;
19745 uint16_t pc5_rlc_ch_id = 1;
19746 uint16_t remote_ue_local_id = 0;
19748 // ...
19749
19750 // sequence methods
19751 SRSASN_CODE pack(bit_ref& bref) const;
19752 SRSASN_CODE unpack(cbit_ref& bref);
19753 void to_json(json_writer& j) const;
19754};
19755
19757
19758// PC5RLCChannelRequiredToBeReleasedItem ::= SEQUENCE
19760 bool ext = false;
19761 bool remote_ue_local_id_present = false;
19762 bool ie_exts_present = false;
19763 uint16_t pc5_rlc_ch_id = 1;
19764 uint16_t remote_ue_local_id = 0;
19766 // ...
19767
19768 // sequence methods
19769 SRSASN_CODE pack(bit_ref& bref) const;
19770 SRSASN_CODE unpack(cbit_ref& bref);
19771 void to_json(json_writer& j) const;
19772};
19773
19775
19776// PC5RLCChannelSetupItem ::= SEQUENCE
19778 bool ext = false;
19779 bool remote_ue_local_id_present = false;
19780 bool ie_exts_present = false;
19781 uint16_t pc5_rlc_ch_id = 1;
19782 uint16_t remote_ue_local_id = 0;
19784 // ...
19785
19786 // sequence methods
19787 SRSASN_CODE pack(bit_ref& bref) const;
19788 SRSASN_CODE unpack(cbit_ref& bref);
19789 void to_json(json_writer& j) const;
19790};
19791
19793
19794// PC5RLCChannelToBeModifiedItem ::= SEQUENCE
19796 bool ext = false;
19797 bool remote_ue_local_id_present = false;
19798 bool pc5_rlc_ch_qos_info_present = false;
19799 bool rlc_mode_present = false;
19800 bool ie_exts_present = false;
19801 uint16_t pc5_rlc_ch_id = 1;
19802 uint16_t remote_ue_local_id = 0;
19803 pc5_rlc_ch_qos_info_c pc5_rlc_ch_qos_info;
19804 rlc_mode_e rlc_mode;
19806 // ...
19807
19808 // sequence methods
19809 SRSASN_CODE pack(bit_ref& bref) const;
19810 SRSASN_CODE unpack(cbit_ref& bref);
19811 void to_json(json_writer& j) const;
19812};
19813
19815
19816// PC5RLCChannelToBeReleasedItem ::= SEQUENCE
19818 bool ext = false;
19819 bool remote_ue_local_id_present = false;
19820 bool ie_exts_present = false;
19821 uint16_t pc5_rlc_ch_id = 1;
19822 uint16_t remote_ue_local_id = 0;
19824 // ...
19825
19826 // sequence methods
19827 SRSASN_CODE pack(bit_ref& bref) const;
19828 SRSASN_CODE unpack(cbit_ref& bref);
19829 void to_json(json_writer& j) const;
19830};
19831
19833
19834// PC5RLCChannelToBeSetupItem ::= SEQUENCE
19836 bool ext = false;
19837 bool remote_ue_local_id_present = false;
19838 bool ie_exts_present = false;
19839 uint16_t pc5_rlc_ch_id = 1;
19840 uint16_t remote_ue_local_id = 0;
19841 pc5_rlc_ch_qos_info_c pc5_rlc_ch_qos_info;
19842 rlc_mode_e rlc_mode;
19844 // ...
19845
19846 // sequence methods
19847 SRSASN_CODE pack(bit_ref& bref) const;
19848 SRSASN_CODE unpack(cbit_ref& bref);
19849 void to_json(json_writer& j) const;
19850};
19851
19852// PDCMeasuredResultsList ::= SEQUENCE (SIZE (1..16)) OF PDCMeasuredResults-Item
19854
19855// PDCMeasurementQuantities-ItemIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
19857 // Value ::= OPEN TYPE
19858 struct value_c {
19859 struct types_opts {
19860 enum options { pdc_meas_quantities_item, nulltype } value;
19861
19862 const char* to_string() const;
19863 };
19865
19866 // choice methods
19867 types type() const { return types::pdc_meas_quantities_item; }
19868 SRSASN_CODE pack(bit_ref& bref) const;
19869 SRSASN_CODE unpack(cbit_ref& bref);
19870 void to_json(json_writer& j) const;
19871 // getters
19872 pdc_meas_quantities_item_s& pdc_meas_quantities_item() { return c; }
19873 const pdc_meas_quantities_item_s& pdc_meas_quantities_item() const { return c; }
19874
19875 private:
19876 pdc_meas_quantities_item_s c;
19877 };
19878
19879 // members lookup methods
19880 static uint32_t idx_to_id(uint32_t idx);
19881 static bool is_id_valid(const uint32_t& id);
19882 static crit_e get_crit(const uint32_t& id);
19883 static value_c get_value(const uint32_t& id);
19884 static presence_e get_presence(const uint32_t& id);
19885};
19886
19887// PDCMeasurementResult-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19888using pdc_meas_result_ext_ies_o = protocol_ext_empty_o;
19889
19890// PEIPSAssistanceInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19891using pe_ip_s_assist_info_ext_ies_o = protocol_ext_empty_o;
19892
19893using prs_meas_info_list_item_ext_ies_container = protocol_ext_container_empty_l;
19894
19895// PRS-Measurement-Info-List-Item ::= SEQUENCE
19898 enum options { ms20, ms40, ms80, ms160, /*...*/ nulltype } value;
19899 typedef uint8_t number_type;
19900
19901 const char* to_string() const;
19902 uint8_t to_number() const;
19903 };
19906 enum options { ms1dot5, ms3, ms3dot5, ms4, ms5dot5, ms6, ms10, ms20, nulltype } value;
19907 typedef float number_type;
19908
19909 const char* to_string() const;
19910 float to_number() const;
19911 const char* to_number_string() const;
19912 };
19914
19915 // member variables
19916 bool ext = false;
19917 bool ie_exts_present = false;
19918 uint32_t point_a = 0;
19919 meas_prs_periodicity_e_ meas_prs_periodicity;
19920 uint8_t meas_prs_offset = 0;
19921 meas_prs_len_e_ meas_prs_len;
19923 // ...
19924
19925 // sequence methods
19926 SRSASN_CODE pack(bit_ref& bref) const;
19927 SRSASN_CODE unpack(cbit_ref& bref);
19928 void to_json(json_writer& j) const;
19929};
19930
19932
19933// PRSTRPItem ::= SEQUENCE
19935 bool ext = false;
19936 bool requested_dl_prs_tx_characteristics_present = false;
19937 bool prs_tx_off_info_present = false;
19938 bool ie_exts_present = false;
19939 uint32_t trp_id = 0;
19940 requested_dl_prs_tx_characteristics_s requested_dl_prs_tx_characteristics;
19941 prs_tx_off_info_s prs_tx_off_info;
19943 // ...
19944
19945 // sequence methods
19946 SRSASN_CODE pack(bit_ref& bref) const;
19947 SRSASN_CODE unpack(cbit_ref& bref);
19948 void to_json(json_writer& j) const;
19949};
19950
19952
19953// PRSTransmissionTRPItem ::= SEQUENCE
19955 bool ext = false;
19956 bool ie_exts_present = false;
19957 uint32_t trp_id = 0;
19958 prs_cfg_s prs_cfg;
19960 // ...
19961
19962 // sequence methods
19963 SRSASN_CODE pack(bit_ref& bref) const;
19964 SRSASN_CODE unpack(cbit_ref& bref);
19965 void to_json(json_writer& j) const;
19966};
19967
19968// PWSSystemInformationExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
19970 // Extension ::= OPEN TYPE
19971 struct ext_c {
19972 struct types_opts {
19973 enum options { notif_info, add_sib_msg_list, nulltype } value;
19974
19975 const char* to_string() const;
19976 };
19978
19979 // choice methods
19980 ext_c() = default;
19981 void set(types::options e = types::nulltype);
19982 types type() const { return type_; }
19983 SRSASN_CODE pack(bit_ref& bref) const;
19984 SRSASN_CODE unpack(cbit_ref& bref);
19985 void to_json(json_writer& j) const;
19986 // getters
19987 notif_info_s& notif_info();
19988 add_sib_msg_list_l& add_sib_msg_list();
19989 const notif_info_s& notif_info() const;
19990 const add_sib_msg_list_l& add_sib_msg_list() const;
19991
19992 private:
19993 types type_;
19995 };
19996
19997 // members lookup methods
19998 static uint32_t idx_to_id(uint32_t idx);
19999 static bool is_id_valid(const uint32_t& id);
20000 static crit_e get_crit(const uint32_t& id);
20001 static ext_c get_ext(const uint32_t& id);
20002 static presence_e get_presence(const uint32_t& id);
20003};
20004
20005// PagingIdentity-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-IES
20006using paging_id_ext_ies_o = protocol_ies_empty_o;
20007
20008// PathSwitchConfiguration-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20009using path_switch_cfg_ext_ies_o = protocol_ext_empty_o;
20010
20011// PedestrianUE ::= ENUMERATED
20013 enum options { authorized, not_authorized, /*...*/ nulltype } value;
20014
20015 const char* to_string() const;
20016};
20018
20019// PosMeasGapPreConfigList-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20021
20023
20024// PosMeasurementQuantities-Item ::= SEQUENCE
20026 bool timing_report_granularity_factor_present = false;
20027 bool ie_exts_present = false;
20028 pos_meas_type_e pos_meas_type;
20029 uint8_t timing_report_granularity_factor = 0;
20031
20032 // sequence methods
20033 SRSASN_CODE pack(bit_ref& bref) const;
20034 SRSASN_CODE unpack(cbit_ref& bref);
20035 void to_json(json_writer& j) const;
20036};
20037
20038// PosMeasurementResultList-Item ::= SEQUENCE
20040 pos_meas_result_l pos_meas_result;
20041 uint32_t trp_id = 0;
20043
20044 // sequence methods
20045 SRSASN_CODE pack(bit_ref& bref) const;
20046 SRSASN_CODE unpack(cbit_ref& bref);
20047 void to_json(json_writer& j) const;
20048};
20049
20051
20052// PosSItype-Item ::= SEQUENCE
20054 bool ie_exts_present = false;
20055 uint8_t pos_itype = 1;
20057
20058 // sequence methods
20059 SRSASN_CODE pack(bit_ref& bref) const;
20060 SRSASN_CODE unpack(cbit_ref& bref);
20061 void to_json(json_writer& j) const;
20062};
20063
20064// QoEInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20066
20067// QoEInformationList ::= SEQUENCE (SIZE (1..16)) OF QoEInformationList-Item
20069
20071
20072// RANUEPagingIdentity ::= SEQUENCE
20074 bool ie_exts_present = false;
20077
20078 // sequence methods
20079 SRSASN_CODE pack(bit_ref& bref) const;
20080 SRSASN_CODE unpack(cbit_ref& bref);
20081 void to_json(json_writer& j) const;
20082};
20083
20084// RLCFailureIndication-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20086
20087// RRC-Version-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20089 // Extension ::= OPEN TYPE
20090 struct ext_c {
20091 struct types_opts {
20092 enum options { latest_rrc_version_enhanced, nulltype } value;
20093
20094 const char* to_string() const;
20095 };
20097
20098 // choice methods
20099 types type() const { return types::latest_rrc_version_enhanced; }
20100 SRSASN_CODE pack(bit_ref& bref) const;
20101 SRSASN_CODE unpack(cbit_ref& bref);
20102 void to_json(json_writer& j) const;
20103 // getters
20104 fixed_octstring<3, true>& latest_rrc_version_enhanced() { return c; }
20105 const fixed_octstring<3, true>& latest_rrc_version_enhanced() const { return c; }
20106
20107 private:
20109 };
20110
20111 // members lookup methods
20112 static uint32_t idx_to_id(uint32_t idx);
20113 static bool is_id_valid(const uint32_t& id);
20114 static crit_e get_crit(const uint32_t& id);
20115 static ext_c get_ext(const uint32_t& id);
20116 static presence_e get_presence(const uint32_t& id);
20117};
20118
20119// RRCDeliveryStatus-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20120using rrc_delivery_status_ext_ies_o = protocol_ext_empty_o;
20121
20122// ReportingRequestType-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20123using report_request_type_ext_ies_o = protocol_ext_empty_o;
20124
20125// RequestedSRSTransmissionCharacteristics-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20127 // Extension ::= OPEN TYPE
20128 struct ext_c {
20129 struct types_opts {
20130 enum options { srs_freq, nulltype } value;
20131 typedef uint8_t number_type;
20132
20133 const char* to_string() const;
20134 uint8_t to_number() const;
20135 };
20137
20138 // choice methods
20139 types type() const { return types::srs_freq; }
20140 SRSASN_CODE pack(bit_ref& bref) const;
20141 SRSASN_CODE unpack(cbit_ref& bref);
20142 void to_json(json_writer& j) const;
20143 // getters
20144 uint32_t& srs_freq() { return c; }
20145 const uint32_t& srs_freq() const { return c; }
20146
20147 private:
20148 uint32_t c;
20149 };
20150
20151 // members lookup methods
20152 static uint32_t idx_to_id(uint32_t idx);
20153 static bool is_id_valid(const uint32_t& id);
20154 static crit_e get_crit(const uint32_t& id);
20155 static ext_c get_ext(const uint32_t& id);
20156 static presence_e get_presence(const uint32_t& id);
20157};
20158
20159// ResourceCoordinationEUTRACellInfo ::= SEQUENCE
20161 bool ext = false;
20162 eutra_coex_mode_info_c eutra_mode_info;
20163 eutra_prach_cfg_s eutra_prach_cfg;
20165 // ...
20166
20167 // sequence methods
20168 SRSASN_CODE pack(bit_ref& bref) const;
20169 SRSASN_CODE unpack(cbit_ref& bref);
20170 void to_json(json_writer& j) const;
20171};
20172
20173// ResourceCoordinationTransferInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20175
20176// ResponseTime-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20178
20179// SDTBearerConfig-List ::= SEQUENCE (SIZE (1..72)) OF SDTBearerConfig-List-Item
20181
20182// SDTBearerConfigurationInfo-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20184
20185// SDTInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20187
20189
20190// SItype-Item ::= SEQUENCE
20192 bool ie_exts_present = false;
20193 uint8_t sitype = 1;
20195
20196 // sequence methods
20197 SRSASN_CODE pack(bit_ref& bref) const;
20198 SRSASN_CODE unpack(cbit_ref& bref);
20199 void to_json(json_writer& j) const;
20200};
20201
20203
20204// SLDRXCycleItem ::= SEQUENCE
20206 bool ext = false;
20207 bool ie_exts_present = false;
20209 sldrx_info_c sldrx_info;
20211 // ...
20212
20213 // sequence methods
20214 SRSASN_CODE pack(bit_ref& bref) const;
20215 SRSASN_CODE unpack(cbit_ref& bref);
20216 void to_json(json_writer& j) const;
20217};
20218
20219// SRSCarrier-List ::= SEQUENCE (SIZE (1..32)) OF SRSCarrier-List-Item
20221
20223
20224// Serving-Cells-List-Item ::= SEQUENCE
20226 bool iab_mt_cell_na_res_cfg_mode_info_present = false;
20227 bool ie_exts_present = false;
20228 nr_cgi_s nr_cgi;
20229 iab_mt_cell_na_res_cfg_mode_info_c iab_mt_cell_na_res_cfg_mode_info;
20231
20232 // sequence methods
20233 SRSASN_CODE pack(bit_ref& bref) const;
20234 SRSASN_CODE unpack(cbit_ref& bref);
20235 void to_json(json_writer& j) const;
20236};
20237
20239
20240// ServingCellMO-encoded-in-CGC-Item ::= SEQUENCE
20242 bool ext = false;
20243 bool ie_exts_present = false;
20244 uint8_t serving_cell_mo = 1;
20246 // ...
20247
20248 // sequence methods
20249 SRSASN_CODE pack(bit_ref& bref) const;
20250 SRSASN_CODE unpack(cbit_ref& bref);
20251 void to_json(json_writer& j) const;
20252};
20253
20254// SidelinkRelayConfiguration-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20256
20257// TNLCapacityIndicator-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20259
20261 bool nr_cgi_present = false;
20262 bool ao_a_search_win_present = false;
20263 bool nof_trp_rx_teg_present = false;
20264 bool nof_trp_rx_tx_teg_present = false;
20265 nr_cgi_s nr_cgi;
20266 ao_a_assist_info_s ao_a_search_win;
20267 nof_trp_rx_teg_e nof_trp_rx_teg;
20268 nof_trp_rx_tx_teg_e nof_trp_rx_tx_teg;
20269
20270 // sequence methods
20271 SRSASN_CODE pack(bit_ref& bref) const;
20272 SRSASN_CODE unpack(cbit_ref& bref);
20273 void to_json(json_writer& j) const;
20274};
20275
20276// TRP-MeasurementRequestItem ::= SEQUENCE
20278 bool search_win_info_present = false;
20279 bool ie_exts_present = false;
20280 uint32_t trp_id = 0;
20281 search_win_info_s search_win_info;
20283
20284 // sequence methods
20285 SRSASN_CODE pack(bit_ref& bref) const;
20286 SRSASN_CODE unpack(cbit_ref& bref);
20287 void to_json(json_writer& j) const;
20288};
20289
20291 bool nof_trp_rx_teg_present = false;
20292 bool nof_trp_rx_tx_teg_present = false;
20293 nof_trp_rx_teg_e nof_trp_rx_teg;
20294 nof_trp_rx_tx_teg_e nof_trp_rx_tx_teg;
20295
20296 // sequence methods
20297 SRSASN_CODE pack(bit_ref& bref) const;
20298 SRSASN_CODE unpack(cbit_ref& bref);
20299 void to_json(json_writer& j) const;
20300};
20301
20302// TRP-MeasurementUpdateItem ::= SEQUENCE
20304 bool ext = false;
20305 bool ao_a_win_info_present = false;
20306 bool ie_exts_present = false;
20307 uint32_t trp_id = 0;
20308 ao_a_assist_info_s ao_a_win_info;
20310 // ...
20311
20312 // sequence methods
20313 SRSASN_CODE pack(bit_ref& bref) const;
20314 SRSASN_CODE unpack(cbit_ref& bref);
20315 void to_json(json_writer& j) const;
20316};
20317
20319
20320// TRP-PRS-Info-List-Item ::= SEQUENCE
20322 bool ext = false;
20323 bool cgi_nr_present = false;
20324 bool ie_exts_present = false;
20325 uint32_t trp_id = 0;
20326 uint16_t nr_pci = 0;
20327 nr_cgi_s cgi_nr;
20328 prs_cfg_s prs_cfg;
20330 // ...
20331
20332 // sequence methods
20333 SRSASN_CODE pack(bit_ref& bref) const;
20334 SRSASN_CODE unpack(cbit_ref& bref);
20335 void to_json(json_writer& j) const;
20336};
20337
20339
20340// TRPListItem ::= SEQUENCE
20342 bool ie_exts_present = false;
20343 uint32_t trp_id = 0;
20345
20346 // sequence methods
20347 SRSASN_CODE pack(bit_ref& bref) const;
20348 SRSASN_CODE unpack(cbit_ref& bref);
20349 void to_json(json_writer& j) const;
20350};
20351
20352// TimeReferenceInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20354
20355// TraceActivation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20357 // Extension ::= OPEN TYPE
20358 struct ext_c {
20359 struct types_opts {
20360 enum options { mdt_cfg, trace_collection_entity_uri, nulltype } value;
20361
20362 const char* to_string() const;
20363 };
20365
20366 // choice methods
20367 ext_c() = default;
20368 void set(types::options e = types::nulltype);
20369 types type() const { return type_; }
20370 SRSASN_CODE pack(bit_ref& bref) const;
20371 SRSASN_CODE unpack(cbit_ref& bref);
20372 void to_json(json_writer& j) const;
20373 // getters
20374 mdt_cfg_s& mdt_cfg();
20375 visible_string<0, MAX_ASN_STRING_LENGTH, false, true>& trace_collection_entity_uri();
20376 const mdt_cfg_s& mdt_cfg() const;
20377 const visible_string<0, MAX_ASN_STRING_LENGTH, false, true>& trace_collection_entity_uri() const;
20378
20379 private:
20380 types type_;
20382 };
20383
20384 // members lookup methods
20385 static uint32_t idx_to_id(uint32_t idx);
20386 static bool is_id_valid(const uint32_t& id);
20387 static crit_e get_crit(const uint32_t& id);
20388 static ext_c get_ext(const uint32_t& id);
20389 static presence_e get_presence(const uint32_t& id);
20390};
20391
20392// TraceDepth ::= ENUMERATED
20394 enum options {
20395 minimum,
20396 medium,
20397 max,
20398 minimum_without_vendor_specific_ext,
20399 medium_without_vendor_specific_ext,
20400 max_without_vendor_specific_ext,
20401 // ...
20402 nulltype
20403 } value;
20404
20405 const char* to_string() const;
20406};
20408
20409// Transport-Layer-Address-Info-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20411
20412// Transport-UP-Layer-Address-Info-To-Add-List ::= SEQUENCE (SIZE (1..16)) OF
20413// Transport-UP-Layer-Address-Info-To-Add-Item
20415
20416// Transport-UP-Layer-Address-Info-To-Remove-List ::= SEQUENCE (SIZE (1..16)) OF
20417// Transport-UP-Layer-Address-Info-To-Remove-Item
20419
20420// UAC-Assistance-InfoExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20422
20423// UACPLMN-List ::= SEQUENCE (SIZE (1..12)) OF UACPLMN-Item
20425
20426// UEPagingCapability-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20428 // Extension ::= OPEN TYPE
20429 struct ext_c {
20430 struct types_opts {
20431 enum options { red_cap_ind, nulltype } value;
20432
20433 const char* to_string() const;
20434 };
20436
20437 // choice methods
20438 types type() const { return types::red_cap_ind; }
20439 SRSASN_CODE pack(bit_ref& bref) const;
20440 SRSASN_CODE unpack(cbit_ref& bref);
20441 void to_json(json_writer& j) const;
20442 // getters
20443 red_cap_ind_e& red_cap_ind() { return c; }
20444 const red_cap_ind_e& red_cap_ind() const { return c; }
20445
20446 private:
20447 red_cap_ind_e c;
20448 };
20449
20450 // members lookup methods
20451 static uint32_t idx_to_id(uint32_t idx);
20452 static bool is_id_valid(const uint32_t& id);
20453 static crit_e get_crit(const uint32_t& id);
20454 static ext_c get_ext(const uint32_t& id);
20455 static presence_e get_presence(const uint32_t& id);
20456};
20457
20458// UEReportingInformation-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20459using ue_report_info_ext_ies_o = protocol_ext_empty_o;
20460
20461// UL-BH-Non-UP-Traffic-Mapping-ExtIEs ::= OBJECT SET OF F1AP-PROTOCOL-EXTENSION
20462using ul_bh_non_up_traffic_map_ext_ies_o = protocol_ext_empty_o;
20463
20464// UL-BH-Non-UP-Traffic-Mapping-List ::= SEQUENCE (SIZE (1..32)) OF UL-BH-Non-UP-Traffic-Mapping-Item
20465using ul_bh_non_up_traffic_map_list_l = dyn_array<ul_bh_non_up_traffic_map_item_s>;
20466
20467using uu_rlc_ch_failed_to_be_modified_item_ext_ies_container = protocol_ext_container_empty_l;
20468
20469// UuRLCChannelFailedToBeModifiedItem ::= SEQUENCE
20471 bool ext = false;
20472 bool cause_present = false;
20473 bool ie_exts_present = false;
20475 cause_c cause;
20477 // ...
20478
20479 // sequence methods
20480 SRSASN_CODE pack(bit_ref& bref) const;
20481 SRSASN_CODE unpack(cbit_ref& bref);
20482 void to_json(json_writer& j) const;
20483};
20484
20486
20487// UuRLCChannelFailedToBeSetupItem ::= SEQUENCE
20489 bool ext = false;
20490 bool cause_present = false;
20491 bool ie_exts_present = false;
20493 cause_c cause;
20495 // ...
20496
20497 // sequence methods
20498 SRSASN_CODE pack(bit_ref& bref) const;
20499 SRSASN_CODE unpack(cbit_ref& bref);
20500 void to_json(json_writer& j) const;
20501};
20502
20504
20505// UuRLCChannelModifiedItem ::= SEQUENCE
20507 bool ext = false;
20508 bool ie_exts_present = false;
20511 // ...
20512
20513 // sequence methods
20514 SRSASN_CODE pack(bit_ref& bref) const;
20515 SRSASN_CODE unpack(cbit_ref& bref);
20516 void to_json(json_writer& j) const;
20517};
20518
20520
20521// UuRLCChannelRequiredToBeModifiedItem ::= SEQUENCE
20523 bool ext = false;
20524 bool ie_exts_present = false;
20527 // ...
20528
20529 // sequence methods
20530 SRSASN_CODE pack(bit_ref& bref) const;
20531 SRSASN_CODE unpack(cbit_ref& bref);
20532 void to_json(json_writer& j) const;
20533};
20534
20536
20537// UuRLCChannelRequiredToBeReleasedItem ::= SEQUENCE
20539 bool ext = false;
20540 bool ie_exts_present = false;
20543 // ...
20544
20545 // sequence methods
20546 SRSASN_CODE pack(bit_ref& bref) const;
20547 SRSASN_CODE unpack(cbit_ref& bref);
20548 void to_json(json_writer& j) const;
20549};
20550
20552
20553// UuRLCChannelSetupItem ::= SEQUENCE
20555 bool ext = false;
20556 bool ie_exts_present = false;
20559 // ...
20560
20561 // sequence methods
20562 SRSASN_CODE pack(bit_ref& bref) const;
20563 SRSASN_CODE unpack(cbit_ref& bref);
20564 void to_json(json_writer& j) const;
20565};
20566
20568
20569// UuRLCChannelToBeModifiedItem ::= SEQUENCE
20571 bool ext = false;
20572 bool uu_rlc_ch_qos_info_present = false;
20573 bool rlc_mode_present = false;
20574 bool ie_exts_present = false;
20576 uu_rlc_ch_qos_info_c uu_rlc_ch_qos_info;
20577 rlc_mode_e rlc_mode;
20579 // ...
20580
20581 // sequence methods
20582 SRSASN_CODE pack(bit_ref& bref) const;
20583 SRSASN_CODE unpack(cbit_ref& bref);
20584 void to_json(json_writer& j) const;
20585};
20586
20588
20589// UuRLCChannelToBeReleasedItem ::= SEQUENCE
20591 bool ext = false;
20592 bool ie_exts_present = false;
20595 // ...
20596
20597 // sequence methods
20598 SRSASN_CODE pack(bit_ref& bref) const;
20599 SRSASN_CODE unpack(cbit_ref& bref);
20600 void to_json(json_writer& j) const;
20601};
20602
20604
20605// UuRLCChannelToBeSetupItem ::= SEQUENCE
20607 bool ext = false;
20608 bool ie_exts_present = false;
20610 uu_rlc_ch_qos_info_c uu_rlc_ch_qos_info;
20611 rlc_mode_e rlc_mode;
20613 // ...
20614
20615 // sequence methods
20616 SRSASN_CODE pack(bit_ref& bref) const;
20617 SRSASN_CODE unpack(cbit_ref& bref);
20618 void to_json(json_writer& j) const;
20619};
20620
20621// VehicleUE ::= ENUMERATED
20623 enum options { authorized, not_authorized, /*...*/ nulltype } value;
20624
20625 const char* to_string() const;
20626};
20628
20629// ActivationRequestType ::= ENUMERATED
20631 enum options { activ, deactiv, /*...*/ nulltype } value;
20632
20633 const char* to_string() const;
20634};
20636
20637// CG-SDTKeptIndicator ::= ENUMERATED
20639 enum options { true_value, /*...*/ nulltype } value;
20640
20641 const char* to_string() const;
20642};
20644
20645// CG-SDTQueryIndication ::= ENUMERATED
20647 enum options { true_value, /*...*/ nulltype } value;
20648
20649 const char* to_string() const;
20650};
20652
20653// Cancel-all-Warning-Messages-Indicator ::= ENUMERATED
20655 enum options { true_value, /*...*/ nulltype } value;
20656
20657 const char* to_string() const;
20658};
20660
20661// DAPS-HO-Status ::= ENUMERATED
20663 enum options { initiation, /*...*/ nulltype } value;
20664
20665 const char* to_string() const;
20666};
20668
20669// DRXConfigurationIndicator ::= ENUMERATED
20671 enum options { release, /*...*/ nulltype } value;
20672
20673 const char* to_string() const;
20674};
20676
20678
20679// F1CTransferPath ::= SEQUENCE
20681 bool ext = false;
20682 bool ie_exts_present = false;
20683 f1_cp_ath_nsa_e f1_cp_ath_nsa;
20685 // ...
20686
20687 // sequence methods
20688 SRSASN_CODE pack(bit_ref& bref) const;
20689 SRSASN_CODE unpack(cbit_ref& bref);
20690 void to_json(json_writer& j) const;
20691};
20692
20694
20695// F1CTransferPathNRDC ::= SEQUENCE
20697 bool ext = false;
20698 bool ie_exts_present = false;
20699 f1_cp_ath_nr_dc_e f1_cp_ath_nr_dc;
20701 // ...
20702
20703 // sequence methods
20704 SRSASN_CODE pack(bit_ref& bref) const;
20705 SRSASN_CODE unpack(cbit_ref& bref);
20706 void to_json(json_writer& j) const;
20707};
20708
20710
20711// FiveG-ProSeAuthorized ::= SEQUENCE
20713 bool ext = false;
20714 bool five_g_pro_se_direct_discovery_present = false;
20715 bool five_g_pro_se_direct_communication_present = false;
20716 bool five_g_pro_se_layer2_ue_to_network_relay_present = false;
20717 bool five_g_pro_se_layer3_ue_to_network_relay_present = false;
20718 bool five_g_pro_se_layer2_remote_ue_present = false;
20719 bool ie_exts_present = false;
20720 five_g_pro_se_direct_discovery_e five_g_pro_se_direct_discovery;
20721 five_g_pro_se_direct_communication_e five_g_pro_se_direct_communication;
20722 five_g_pro_se_layer2_ue_to_network_relay_e five_g_pro_se_layer2_ue_to_network_relay;
20723 five_g_pro_se_layer3_ue_to_network_relay_e five_g_pro_se_layer3_ue_to_network_relay;
20724 five_g_pro_se_layer2_remote_ue_e five_g_pro_se_layer2_remote_ue;
20726 // ...
20727
20728 // sequence methods
20729 SRSASN_CODE pack(bit_ref& bref) const;
20730 SRSASN_CODE unpack(cbit_ref& bref);
20731 void to_json(json_writer& j) const;
20732};
20733
20734// FullConfiguration ::= ENUMERATED
20736 enum options { full, /*...*/ nulltype } value;
20737
20738 const char* to_string() const;
20739};
20741
20742// GNB-DUConfigurationQuery ::= ENUMERATED
20744 enum options { true_value, /*...*/ nulltype } value;
20745
20746 const char* to_string() const;
20747};
20749
20750// GNBDUOverloadInformation ::= ENUMERATED
20752 enum options { overloaded, not_overloaded, nulltype } value;
20753
20754 const char* to_string() const;
20755};
20757
20758// GNBDUUESliceMaximumBitRateList ::= SEQUENCE (SIZE (1..8)) OF GNBDUUESliceMaximumBitRateItem
20760
20762
20763// HardwareLoadIndicator ::= SEQUENCE
20765 bool ext = false;
20766 bool ie_exts_present = false;
20767 uint8_t dl_hardware_load_ind = 0;
20768 uint8_t ul_hardware_load_ind = 0;
20770 // ...
20771
20772 // sequence methods
20773 SRSASN_CODE pack(bit_ref& bref) const;
20774 SRSASN_CODE unpack(cbit_ref& bref);
20775 void to_json(json_writer& j) const;
20776};
20777
20779
20780// IAB-TNL-Addresses-Exception ::= SEQUENCE
20782 bool ie_exts_present = false;
20783 iab_tnl_address_list_l iab_tnl_address_list;
20785
20786 // sequence methods
20787 SRSASN_CODE pack(bit_ref& bref) const;
20788 SRSASN_CODE unpack(cbit_ref& bref);
20789 void to_json(json_writer& j) const;
20790};
20791
20792// IABConditionalRRCMessageDeliveryIndication ::= ENUMERATED
20794 enum options { true_value, /*...*/ nulltype } value;
20795
20796 const char* to_string() const;
20797};
20799
20801
20802// IABCongestionIndication ::= SEQUENCE
20804 bool ie_exts_present = false;
20805 iab_congestion_ind_list_l iab_congestion_ind_list;
20807
20808 // sequence methods
20809 SRSASN_CODE pack(bit_ref& bref) const;
20810 SRSASN_CODE unpack(cbit_ref& bref);
20811 void to_json(json_writer& j) const;
20812};
20813
20814// IABIPv6RequestType ::= CHOICE
20816 struct types_opts {
20817 enum options { ip_v6_address, ip_v6_prefix, choice_ext, nulltype } value;
20818
20819 const char* to_string() const;
20820 };
20822
20823 // choice methods
20824 iab_ip_v6_request_type_c() = default;
20826 iab_ip_v6_request_type_c& operator=(const iab_ip_v6_request_type_c& other);
20827 ~iab_ip_v6_request_type_c() { destroy_(); }
20828 void set(types::options e = types::nulltype);
20829 types type() const { return type_; }
20830 SRSASN_CODE pack(bit_ref& bref) const;
20831 SRSASN_CODE unpack(cbit_ref& bref);
20832 void to_json(json_writer& j) const;
20833 // getters
20834 iab_tnl_addresses_requested_s& ip_v6_address()
20835 {
20836 assert_choice_type(types::ip_v6_address, type_, "IABIPv6RequestType");
20837 return c.get<iab_tnl_addresses_requested_s>();
20838 }
20839 iab_tnl_addresses_requested_s& ip_v6_prefix()
20840 {
20841 assert_choice_type(types::ip_v6_prefix, type_, "IABIPv6RequestType");
20842 return c.get<iab_tnl_addresses_requested_s>();
20843 }
20844 protocol_ie_single_container_s<iab_ip_v6_request_type_ext_ies_o>& choice_ext()
20845 {
20846 assert_choice_type(types::choice_ext, type_, "IABIPv6RequestType");
20847 return c.get<protocol_ie_single_container_s<iab_ip_v6_request_type_ext_ies_o>>();
20848 }
20849 const iab_tnl_addresses_requested_s& ip_v6_address() const
20850 {
20851 assert_choice_type(types::ip_v6_address, type_, "IABIPv6RequestType");
20852 return c.get<iab_tnl_addresses_requested_s>();
20853 }
20854 const iab_tnl_addresses_requested_s& ip_v6_prefix() const
20855 {
20856 assert_choice_type(types::ip_v6_prefix, type_, "IABIPv6RequestType");
20857 return c.get<iab_tnl_addresses_requested_s>();
20858 }
20859 const protocol_ie_single_container_s<iab_ip_v6_request_type_ext_ies_o>& choice_ext() const
20860 {
20861 assert_choice_type(types::choice_ext, type_, "IABIPv6RequestType");
20862 return c.get<protocol_ie_single_container_s<iab_ip_v6_request_type_ext_ies_o>>();
20863 }
20864 iab_tnl_addresses_requested_s& set_ip_v6_address();
20865 iab_tnl_addresses_requested_s& set_ip_v6_prefix();
20866 protocol_ie_single_container_s<iab_ip_v6_request_type_ext_ies_o>& set_choice_ext();
20867
20868private:
20869 types type_;
20870 choice_buffer_t<iab_tnl_addresses_requested_s, protocol_ie_single_container_s<iab_ip_v6_request_type_ext_ies_o>> c;
20871
20872 void destroy_();
20873};
20874
20875using ia_bv4_addresses_requested_ext_ies_container = protocol_ext_container_empty_l;
20876
20877// IABv4AddressesRequested ::= SEQUENCE
20879 bool ie_exts_present = false;
20880 iab_tnl_addresses_requested_s ia_bv4_addresses_requested;
20882
20883 // sequence methods
20884 SRSASN_CODE pack(bit_ref& bref) const;
20885 SRSASN_CODE unpack(cbit_ref& bref);
20886 void to_json(json_writer& j) const;
20887};
20888
20889// IgnoreResourceCoordinationContainer ::= ENUMERATED
20891 enum options { yes, /*...*/ nulltype } value;
20892
20893 const char* to_string() const;
20894};
20896
20897// InactivityMonitoringRequest ::= ENUMERATED
20899 enum options { true_value, /*...*/ nulltype } value;
20900
20901 const char* to_string() const;
20902};
20904
20905// InactivityMonitoringResponse ::= ENUMERATED
20907 enum options { not_supported, /*...*/ nulltype } value;
20908
20909 const char* to_string() const;
20910};
20912
20914
20915// LTEUESidelinkAggregateMaximumBitrate ::= SEQUENCE
20917 bool ie_exts_present = false;
20918 uint64_t ue_lte_sidelink_aggr_max_bitrate = 0;
20920
20921 // sequence methods
20922 SRSASN_CODE pack(bit_ref& bref) const;
20923 SRSASN_CODE unpack(cbit_ref& bref);
20924 void to_json(json_writer& j) const;
20925};
20926
20928
20929// LTEV2XServicesAuthorized ::= SEQUENCE
20931 bool vehicle_ue_present = false;
20932 bool pedestrian_ue_present = false;
20933 bool ie_exts_present = false;
20934 vehicle_ue_e vehicle_ue;
20935 pedestrian_ue_e pedestrian_ue;
20937
20938 // sequence methods
20939 SRSASN_CODE pack(bit_ref& bref) const;
20940 SRSASN_CODE unpack(cbit_ref& bref);
20941 void to_json(json_writer& j) const;
20942};
20943
20944// LowerLayerPresenceStatusChange ::= ENUMERATED
20946 enum options { suspend_lower_layers, resume_lower_layers, /*...*/ nulltype } value;
20947
20948 const char* to_string() const;
20949};
20951
20953
20954// MBSMulticastF1UContextDescriptor ::= SEQUENCE
20957 enum options { ptm, ptp, ptp_retx, ptp_forwarding, /*...*/ nulltype } value;
20958
20959 const char* to_string() const;
20960 };
20962
20963 // member variables
20964 bool ext = false;
20965 bool mbs_area_session_present = false;
20966 bool ie_exts_present = false;
20967 fixed_octstring<4, true> multicast_f1_u_context_ref_f1;
20968 mc_f1_u_ctxtusage_e_ mc_f1_u_ctxtusage;
20969 uint32_t mbs_area_session = 0;
20971 // ...
20972
20973 // sequence methods
20974 SRSASN_CODE pack(bit_ref& bref) const;
20975 SRSASN_CODE unpack(cbit_ref& bref);
20976 void to_json(json_writer& j) const;
20977};
20978
20979// MDTPLMNList ::= SEQUENCE (SIZE (1..16)) OF OCTET STRING (SIZE (3))
20981
20982// MDTPLMNModificationList ::= SEQUENCE (SIZE (0..16)) OF OCTET STRING (SIZE (3))
20984
20985// MDTPollutedMeasurementIndicator ::= ENUMERATED
20987 enum options { id_c, no_id_c, /*...*/ nulltype } value;
20988
20989 const char* to_string() const;
20990};
20992
20993// MeasurementBeamInfoRequest ::= ENUMERATED
20995 enum options { true_value, /*...*/ nulltype } value;
20996
20997 const char* to_string() const;
20998};
21000
21001// MeasurementPeriodicityExtended ::= ENUMERATED
21003 enum options {
21004 ms160,
21005 ms320,
21006 ms1280,
21007 ms2560,
21008 ms61440,
21009 ms81920,
21010 ms368640,
21011 ms737280,
21012 ms1843200,
21013 /*...*/ nulltype
21014 } value;
21015 typedef uint32_t number_type;
21016
21017 const char* to_string() const;
21018 uint32_t to_number() const;
21019};
21021
21022// MeasurementTimeOccasion ::= ENUMERATED
21024 enum options { o1, o4, /*...*/ nulltype } value;
21025 typedef uint8_t number_type;
21026
21027 const char* to_string() const;
21028 uint8_t to_number() const;
21029};
21031
21032// MulticastMBSSessionList ::= SEQUENCE (SIZE (1..256)) OF MulticastMBSSessionList-Item
21034
21036
21037// NRPagingeDRXInformation ::= SEQUENCE
21039 bool ext = false;
21040 bool nrpaging_time_win_present = false;
21041 bool ie_exts_present = false;
21042 nr_paging_e_drx_cycle_idle_e nrpaging_e_drx_cycle_idle;
21043 nr_paging_time_win_e nrpaging_time_win;
21045 // ...
21046
21047 // sequence methods
21048 SRSASN_CODE pack(bit_ref& bref) const;
21049 SRSASN_CODE unpack(cbit_ref& bref);
21050 void to_json(json_writer& j) const;
21051};
21052
21054
21055// NRPagingeDRXInformationforRRCINACTIVE ::= SEQUENCE
21057 bool ext = false;
21058 bool ie_exts_present = false;
21059 nr_paging_e_drx_cycle_inactive_e nrpaging_e_drx_cycle_inactive;
21061 // ...
21062
21063 // sequence methods
21064 SRSASN_CODE pack(bit_ref& bref) const;
21065 SRSASN_CODE unpack(cbit_ref& bref);
21066 void to_json(json_writer& j) const;
21067};
21068
21069// NRRedCapUEIndication ::= ENUMERATED
21071 enum options { true_value, /*...*/ nulltype } value;
21072
21073 const char* to_string() const;
21074};
21076
21078
21079// NRUESidelinkAggregateMaximumBitrate ::= SEQUENCE
21081 bool ie_exts_present = false;
21082 uint64_t ue_nr_sidelink_aggr_max_bitrate = 0;
21084
21085 // sequence methods
21086 SRSASN_CODE pack(bit_ref& bref) const;
21087 SRSASN_CODE unpack(cbit_ref& bref);
21088 void to_json(json_writer& j) const;
21089};
21090
21092
21093// NRV2XServicesAuthorized ::= SEQUENCE
21095 bool vehicle_ue_present = false;
21096 bool pedestrian_ue_present = false;
21097 bool ie_exts_present = false;
21098 vehicle_ue_e vehicle_ue;
21099 pedestrian_ue_e pedestrian_ue;
21101
21102 // sequence methods
21103 SRSASN_CODE pack(bit_ref& bref) const;
21104 SRSASN_CODE unpack(cbit_ref& bref);
21105 void to_json(json_writer& j) const;
21106};
21107
21108// NeedforGap ::= ENUMERATED
21110 enum options { true_value, /*...*/ nulltype } value;
21111
21112 const char* to_string() const;
21113};
21115
21116// Neighbour-Node-Cells-List ::= SEQUENCE (SIZE (1..1024)) OF Neighbour-Node-Cells-List-Item
21118
21119// PC5RLCChannelFailedToBeModifiedList ::= SEQUENCE (SIZE (1..512)) OF PC5RLCChannelFailedToBeModifiedItem
21121
21122// PC5RLCChannelFailedToBeSetupList ::= SEQUENCE (SIZE (1..512)) OF PC5RLCChannelFailedToBeSetupItem
21124
21125// PC5RLCChannelModifiedList ::= SEQUENCE (SIZE (1..512)) OF PC5RLCChannelModifiedItem
21127
21128// PC5RLCChannelRequiredToBeModifiedList ::= SEQUENCE (SIZE (1..512)) OF PC5RLCChannelRequiredToBeModifiedItem
21130
21131// PC5RLCChannelRequiredToBeReleasedList ::= SEQUENCE (SIZE (1..512)) OF PC5RLCChannelRequiredToBeReleasedItem
21133
21134// PC5RLCChannelSetupList ::= SEQUENCE (SIZE (1..512)) OF PC5RLCChannelSetupItem
21136
21137// PC5RLCChannelToBeModifiedList ::= SEQUENCE (SIZE (1..512)) OF PC5RLCChannelToBeModifiedItem
21139
21140// PC5RLCChannelToBeReleasedList ::= SEQUENCE (SIZE (1..512)) OF PC5RLCChannelToBeReleasedItem
21142
21143// PC5RLCChannelToBeSetupList ::= SEQUENCE (SIZE (1..512)) OF PC5RLCChannelToBeSetupItem
21145
21146// PDCMeasurementPeriodicity ::= ENUMERATED
21148 enum options {
21149 ms80,
21150 ms120,
21151 ms160,
21152 ms240,
21153 ms320,
21154 ms480,
21155 ms640,
21156 ms1024,
21157 ms1280,
21158 ms2048,
21159 ms2560,
21160 ms5120,
21161 /*...*/ nulltype
21162 } value;
21163 typedef uint16_t number_type;
21164
21165 const char* to_string() const;
21166 uint16_t to_number() const;
21167};
21169
21170// PDCMeasurementQuantities ::= SEQUENCE (SIZE (1..16)) OF ProtocolIE-SingleContainer{F1AP-PROTOCOL-IES : IEsSetParam}
21172
21174
21175// PDCMeasurementResult ::= SEQUENCE
21177 bool ie_exts_present = false;
21178 pdc_measured_results_list_l pdc_measured_results_list;
21180
21181 // sequence methods
21182 SRSASN_CODE pack(bit_ref& bref) const;
21183 SRSASN_CODE unpack(cbit_ref& bref);
21184 void to_json(json_writer& j) const;
21185};
21186
21187// PDCReportType ::= ENUMERATED
21189 enum options { on_demand, periodic, /*...*/ nulltype } value;
21190
21191 const char* to_string() const;
21192};
21194
21196
21197// PEIPSAssistanceInfo ::= SEQUENCE
21199 bool ie_exts_present = false;
21200 uint8_t cn_subgroup_id = 0;
21202
21203 // sequence methods
21204 SRSASN_CODE pack(bit_ref& bref) const;
21205 SRSASN_CODE unpack(cbit_ref& bref);
21206 void to_json(json_writer& j) const;
21207};
21208
21209// PRS-Measurement-Info-List ::= SEQUENCE (SIZE (1..4)) OF PRS-Measurement-Info-List-Item
21211
21212// PRSConfigRequestType ::= ENUMERATED
21214 enum options { cfgure, off, /*...*/ nulltype } value;
21215
21216 const char* to_string() const;
21217};
21219
21220// PRSTRPList ::= SEQUENCE (SIZE (1..65535)) OF PRSTRPItem
21222
21223// PRSTransmissionTRPList ::= SEQUENCE (SIZE (1..65535)) OF PRSTransmissionTRPItem
21225
21227 bool notif_info_present = false;
21228 bool add_sib_msg_list_present = false;
21229 notif_info_s notif_info;
21230 add_sib_msg_list_l add_sib_msg_list;
21231
21232 // sequence methods
21233 SRSASN_CODE pack(bit_ref& bref) const;
21234 SRSASN_CODE unpack(cbit_ref& bref);
21235 void to_json(json_writer& j) const;
21236};
21237
21238// PWSSystemInformation ::= SEQUENCE
21240 bool ext = false;
21241 bool ie_exts_present = false;
21242 uint8_t sib_type = 6;
21245 // ...
21246
21247 // sequence methods
21248 SRSASN_CODE pack(bit_ref& bref) const;
21249 SRSASN_CODE unpack(cbit_ref& bref);
21250 void to_json(json_writer& j) const;
21251};
21252
21253// PagingCause ::= ENUMERATED
21255 enum options { voice, /*...*/ nulltype } value;
21256
21257 const char* to_string() const;
21258};
21260
21261// PagingIdentity ::= CHOICE
21263 struct types_opts {
21264 enum options { ran_ue_paging_id, cn_ue_paging_id, choice_ext, nulltype } value;
21265
21266 const char* to_string() const;
21267 };
21269
21270 // choice methods
21271 paging_id_c() = default;
21272 paging_id_c(const paging_id_c& other);
21273 paging_id_c& operator=(const paging_id_c& other);
21274 ~paging_id_c() { destroy_(); }
21275 void set(types::options e = types::nulltype);
21276 types type() const { return type_; }
21277 SRSASN_CODE pack(bit_ref& bref) const;
21278 SRSASN_CODE unpack(cbit_ref& bref);
21279 void to_json(json_writer& j) const;
21280 // getters
21281 ran_ue_paging_id_s& ran_ue_paging_id()
21282 {
21283 assert_choice_type(types::ran_ue_paging_id, type_, "PagingIdentity");
21284 return c.get<ran_ue_paging_id_s>();
21285 }
21286 cn_ue_paging_id_c& cn_ue_paging_id()
21287 {
21288 assert_choice_type(types::cn_ue_paging_id, type_, "PagingIdentity");
21289 return c.get<cn_ue_paging_id_c>();
21290 }
21291 protocol_ie_single_container_s<paging_id_ext_ies_o>& choice_ext()
21292 {
21293 assert_choice_type(types::choice_ext, type_, "PagingIdentity");
21294 return c.get<protocol_ie_single_container_s<paging_id_ext_ies_o>>();
21295 }
21296 const ran_ue_paging_id_s& ran_ue_paging_id() const
21297 {
21298 assert_choice_type(types::ran_ue_paging_id, type_, "PagingIdentity");
21299 return c.get<ran_ue_paging_id_s>();
21300 }
21301 const cn_ue_paging_id_c& cn_ue_paging_id() const
21302 {
21303 assert_choice_type(types::cn_ue_paging_id, type_, "PagingIdentity");
21304 return c.get<cn_ue_paging_id_c>();
21305 }
21306 const protocol_ie_single_container_s<paging_id_ext_ies_o>& choice_ext() const
21307 {
21308 assert_choice_type(types::choice_ext, type_, "PagingIdentity");
21309 return c.get<protocol_ie_single_container_s<paging_id_ext_ies_o>>();
21310 }
21311 ran_ue_paging_id_s& set_ran_ue_paging_id();
21312 cn_ue_paging_id_c& set_cn_ue_paging_id();
21313 protocol_ie_single_container_s<paging_id_ext_ies_o>& set_choice_ext();
21314
21315private:
21316 types type_;
21317 choice_buffer_t<cn_ue_paging_id_c, protocol_ie_single_container_s<paging_id_ext_ies_o>, ran_ue_paging_id_s> c;
21318
21319 void destroy_();
21320};
21321
21322// PagingOrigin ::= ENUMERATED
21324 enum options { non_neg3gpp, /*...*/ nulltype } value;
21325 typedef int8_t number_type;
21326
21327 const char* to_string() const;
21328 int8_t to_number() const;
21329};
21331
21332// PagingPriority ::= ENUMERATED
21334 enum options {
21335 priolevel1,
21336 priolevel2,
21337 priolevel3,
21338 priolevel4,
21339 priolevel5,
21340 priolevel6,
21341 priolevel7,
21342 priolevel8,
21343 // ...
21344 nulltype
21345 } value;
21346 typedef uint8_t number_type;
21347
21348 const char* to_string() const;
21349 uint8_t to_number() const;
21350};
21352
21354
21355// PathSwitchConfiguration ::= SEQUENCE
21357 struct t420_opts {
21358 enum options { ms50, ms100, ms150, ms200, ms500, ms1000, ms2000, ms10000, nulltype } value;
21359 typedef uint16_t number_type;
21360
21361 const char* to_string() const;
21362 uint16_t to_number() const;
21363 };
21365
21366 // member variables
21367 bool ext = false;
21368 bool ie_exts_present = false;
21369 fixed_bitstring<24, false, true> target_relay_ue_id;
21370 uint16_t remote_ue_local_id = 0;
21371 t420_e_ t420;
21373 // ...
21374
21375 // sequence methods
21376 SRSASN_CODE pack(bit_ref& bref) const;
21377 SRSASN_CODE unpack(cbit_ref& bref);
21378 void to_json(json_writer& j) const;
21379};
21380
21381// PosBroadcast ::= ENUMERATED
21383 enum options { start, stop, /*...*/ nulltype } value;
21384
21385 const char* to_string() const;
21386};
21388
21389// PosConextRevIndication ::= ENUMERATED
21391 enum options { true_value, /*...*/ nulltype } value;
21392
21393 const char* to_string() const;
21394};
21396
21398
21399// PosMeasGapPreConfigList ::= SEQUENCE
21401 bool ie_exts_present = false;
21402 unbounded_octstring<true> pos_meas_gap_pre_cfg_to_add_mod_list;
21403 unbounded_octstring<true> pos_meas_gap_pre_cfg_to_release_list;
21405
21406 // sequence methods
21407 SRSASN_CODE pack(bit_ref& bref) const;
21408 SRSASN_CODE unpack(cbit_ref& bref);
21409 void to_json(json_writer& j) const;
21410};
21411
21412// PosMeasurementAmount ::= ENUMERATED
21414 enum options { ma0, ma1, ma2, ma4, ma8, ma16, ma32, ma64, nulltype } value;
21415 typedef uint8_t number_type;
21416
21417 const char* to_string() const;
21418 uint8_t to_number() const;
21419};
21421
21422// PosMeasurementQuantities ::= SEQUENCE (SIZE (1..16384)) OF PosMeasurementQuantities-Item
21424
21425// PosMeasurementResultList ::= SEQUENCE (SIZE (1..64)) OF PosMeasurementResultList-Item
21427
21428// PosReportCharacteristics ::= ENUMERATED
21430 enum options { ondemand, periodic, /*...*/ nulltype } value;
21431
21432 const char* to_string() const;
21433};
21435
21436// PosSItypeList ::= SEQUENCE (SIZE (1..32)) OF PosSItype-Item
21438
21439// PositioningBroadcastCells ::= SEQUENCE (SIZE (1..16384)) OF NRCGI
21441
21443
21444// QoEInformation ::= SEQUENCE
21446 bool ie_exts_present = false;
21447 qo_e_info_list_l qo_e_info_list;
21449
21450 // sequence methods
21451 SRSASN_CODE pack(bit_ref& bref) const;
21452 SRSASN_CODE unpack(cbit_ref& bref);
21453 void to_json(json_writer& j) const;
21454};
21455
21457
21458// RLCFailureIndication ::= SEQUENCE
21460 bool ie_exts_present = false;
21461 uint8_t assocated_lcid = 1;
21463
21464 // sequence methods
21465 SRSASN_CODE pack(bit_ref& bref) const;
21466 SRSASN_CODE unpack(cbit_ref& bref);
21467 void to_json(json_writer& j) const;
21468};
21469
21470// RRC-Version ::= SEQUENCE
21472 fixed_bitstring<3, false, true> latest_rrc_version;
21474
21475 // sequence methods
21476 SRSASN_CODE pack(bit_ref& bref) const;
21477 SRSASN_CODE unpack(cbit_ref& bref);
21478 void to_json(json_writer& j) const;
21479};
21480
21482
21483// RRCDeliveryStatus ::= SEQUENCE
21485 bool ie_exts_present = false;
21486 uint16_t delivery_status = 0;
21487 uint16_t trigger_msg = 0;
21489
21490 // sequence methods
21491 SRSASN_CODE pack(bit_ref& bref) const;
21492 SRSASN_CODE unpack(cbit_ref& bref);
21493 void to_json(json_writer& j) const;
21494};
21495
21496// RRCReconfigurationCompleteIndicator ::= ENUMERATED
21498 enum options { true_value, /*...*/ fail, nulltype } value;
21499
21500 const char* to_string() const;
21501};
21503
21504// RegistrationRequest ::= ENUMERATED
21506 enum options { start, stop, add, /*...*/ nulltype } value;
21507
21508 const char* to_string() const;
21509};
21511
21512// ReportingPeriodicity ::= ENUMERATED
21514 enum options { ms500, ms1000, ms2000, ms5000, ms10000, /*...*/ nulltype } value;
21515 typedef uint16_t number_type;
21516
21517 const char* to_string() const;
21518 uint16_t to_number() const;
21519};
21521
21523
21524// ReportingRequestType ::= SEQUENCE
21526 bool report_periodicity_value_present = false;
21527 bool ie_exts_present = false;
21528 event_type_e event_type;
21529 uint16_t report_periodicity_value = 0;
21531
21532 // sequence methods
21533 SRSASN_CODE pack(bit_ref& bref) const;
21534 SRSASN_CODE unpack(cbit_ref& bref);
21535 void to_json(json_writer& j) const;
21536};
21537
21538// RequestType ::= ENUMERATED
21540 enum options { offer, execution, /*...*/ nulltype } value;
21541
21542 const char* to_string() const;
21543};
21545
21546// RequestedSRSTransmissionCharacteristics ::= SEQUENCE
21549 enum options { periodic, semi_persistent, aperiodic, /*...*/ nulltype } value;
21550
21551 const char* to_string() const;
21552 };
21554
21555 // member variables
21556 bool nof_txs_present = false;
21557 bool ssb_info_present = false;
21558 uint16_t nof_txs = 0;
21559 res_type_e_ res_type;
21560 bw_srs_c bw_srs;
21561 srs_res_set_list_l srs_res_set_list;
21562 ssb_info_s ssb_info;
21564
21565 // sequence methods
21566 SRSASN_CODE pack(bit_ref& bref) const;
21567 SRSASN_CODE unpack(cbit_ref& bref);
21568 void to_json(json_writer& j) const;
21569};
21570
21572
21573// ResourceCoordinationTransferInformation ::= SEQUENCE
21575 bool ext = false;
21576 bool res_coordination_eutra_cell_info_present = false;
21577 bool ie_exts_present = false;
21579 res_coordination_eutra_cell_info_s res_coordination_eutra_cell_info;
21581 // ...
21582
21583 // sequence methods
21584 SRSASN_CODE pack(bit_ref& bref) const;
21585 SRSASN_CODE unpack(cbit_ref& bref);
21586 void to_json(json_writer& j) const;
21587};
21588
21590
21591// ResponseTime ::= SEQUENCE
21594 enum options { second, ten_seconds, ten_milliseconds, /*...*/ nulltype } value;
21595
21596 const char* to_string() const;
21597 };
21599
21600 // member variables
21601 bool ext = false;
21602 bool ie_exts_present = false;
21603 uint8_t time = 1;
21604 time_unit_e_ time_unit;
21606 // ...
21607
21608 // sequence methods
21609 SRSASN_CODE pack(bit_ref& bref) const;
21610 SRSASN_CODE unpack(cbit_ref& bref);
21611 void to_json(json_writer& j) const;
21612};
21613
21614// SCGActivationRequest ::= ENUMERATED
21616 enum options { activ_scg, deactiv_scg, /*...*/ nulltype } value;
21617
21618 const char* to_string() const;
21619};
21621
21622// SCGActivationStatus ::= ENUMERATED
21624 enum options { scg_activ, scg_deactiv, /*...*/ nulltype } value;
21625
21626 const char* to_string() const;
21627};
21629
21630// SCGIndicator ::= ENUMERATED
21632 enum options { released, /*...*/ nulltype } value;
21633
21634 const char* to_string() const;
21635};
21637
21638// SDT-Termination-Request ::= ENUMERATED
21640 enum options { radio_link_problem, normal, /*...*/ nulltype } value;
21641
21642 const char* to_string() const;
21643};
21645
21647
21648// SDTBearerConfigurationInfo ::= SEQUENCE
21650 bool ie_exts_present = false;
21651 sdt_bearer_cfg_list_l sdt_bearer_cfg_list;
21653
21654 // sequence methods
21655 SRSASN_CODE pack(bit_ref& bref) const;
21656 SRSASN_CODE unpack(cbit_ref& bref);
21657 void to_json(json_writer& j) const;
21658};
21659
21660// SDTBearerConfigurationQueryIndication ::= ENUMERATED
21662 enum options { true_value, /*...*/ nulltype } value;
21663
21664 const char* to_string() const;
21665};
21667
21669
21670// SDTInformation ::= SEQUENCE
21673 enum options { true_value, /*...*/ nulltype } value;
21674
21675 const char* to_string() const;
21676 };
21679 enum options { singlepacket, multiplepackets, /*...*/ nulltype } value;
21680
21681 const char* to_string() const;
21682 };
21684
21685 // member variables
21686 bool sdt_assistant_info_present = false;
21687 bool ie_exts_present = false;
21688 sdt_ind_e_ sdt_ind;
21689 sdt_assistant_info_e_ sdt_assistant_info;
21691
21692 // sequence methods
21693 SRSASN_CODE pack(bit_ref& bref) const;
21694 SRSASN_CODE unpack(cbit_ref& bref);
21695 void to_json(json_writer& j) const;
21696};
21697
21698// SItype-List ::= SEQUENCE (SIZE (1..32)) OF SItype-Item
21700
21701// SLDRXCycleList ::= SEQUENCE (SIZE (1..32)) OF SLDRXCycleItem
21703
21704// SRSPosRRCInactiveQueryIndication ::= ENUMERATED
21706 enum options { true_value, /*...*/ nulltype } value;
21707
21708 const char* to_string() const;
21709};
21711
21712// SULAccessIndication ::= ENUMERATED
21714 enum options { true_value, /*...*/ nulltype } value;
21715
21716 const char* to_string() const;
21717};
21719
21720// Serving-Cells-List ::= SEQUENCE (SIZE (1..32)) OF Serving-Cells-List-Item
21722
21723// ServingCellMO-encoded-in-CGC-List ::= SEQUENCE (SIZE (1..8)) OF ServingCellMO-encoded-in-CGC-Item
21725
21727
21728// SidelinkRelayConfiguration ::= SEQUENCE
21730 bool ext = false;
21731 bool ie_exts_present = false;
21732 uint64_t gnb_du_ue_f1ap_id_of_relay_ue = 0;
21733 uint16_t remote_ue_local_id = 0;
21734 unbounded_octstring<true> sidelink_cfg_container;
21736 // ...
21737
21738 // sequence methods
21739 SRSASN_CODE pack(bit_ref& bref) const;
21740 SRSASN_CODE unpack(cbit_ref& bref);
21741 void to_json(json_writer& j) const;
21742};
21743
21745
21746// TNLCapacityIndicator ::= SEQUENCE
21748 bool ie_exts_present = false;
21749 uint32_t dl_tnl_offered_capacity = 1;
21750 uint8_t dl_tnl_available_capacity = 0;
21751 uint32_t ul_tnl_offered_capacity = 1;
21752 uint8_t ul_tnl_available_capacity = 0;
21754
21755 // sequence methods
21756 SRSASN_CODE pack(bit_ref& bref) const;
21757 SRSASN_CODE unpack(cbit_ref& bref);
21758 void to_json(json_writer& j) const;
21759};
21760
21761// TRP-MeasurementRequestList ::= SEQUENCE (SIZE (1..64)) OF TRP-MeasurementRequestItem
21763
21764// TRP-MeasurementUpdateList ::= SEQUENCE (SIZE (1..64)) OF TRP-MeasurementUpdateItem
21766
21767// TRP-PRS-Info-List ::= SEQUENCE (SIZE (1..256)) OF TRP-PRS-Info-List-Item
21769
21770// TRPList ::= SEQUENCE (SIZE (1..65535)) OF TRPListItem
21772
21774
21775// TimeReferenceInformation ::= SEQUENCE
21777 bool ie_exts_present = false;
21779 uint16_t ref_sfn = 0;
21780 uint16_t uncertainty = 0;
21782
21783 // sequence methods
21784 SRSASN_CODE pack(bit_ref& bref) const;
21785 SRSASN_CODE unpack(cbit_ref& bref);
21786 void to_json(json_writer& j) const;
21787};
21788
21790 bool mdt_cfg_present = false;
21791 bool trace_collection_entity_uri_present = false;
21792 mdt_cfg_s mdt_cfg;
21794
21795 // sequence methods
21796 SRSASN_CODE pack(bit_ref& bref) const;
21797 SRSASN_CODE unpack(cbit_ref& bref);
21798 void to_json(json_writer& j) const;
21799};
21800
21801// TraceActivation ::= SEQUENCE
21803 bool ie_exts_present = false;
21804 fixed_octstring<8, true> trace_id;
21805 fixed_bitstring<8, false, true> interfaces_to_trace;
21806 trace_depth_e trace_depth;
21807 bounded_bitstring<1, 160, true, true> trace_collection_entity_ip_address;
21809
21810 // sequence methods
21811 SRSASN_CODE pack(bit_ref& bref) const;
21812 SRSASN_CODE unpack(cbit_ref& bref);
21813 void to_json(json_writer& j) const;
21814};
21815
21816// TransmissionActionIndicator ::= ENUMERATED
21818 enum options { stop, /*...*/ restart, nulltype } value;
21819
21820 const char* to_string() const;
21821};
21823
21825
21826// Transport-Layer-Address-Info ::= SEQUENCE
21828 bool ie_exts_present = false;
21829 transport_up_layer_address_info_to_add_list_l transport_up_layer_address_info_to_add_list;
21830 transport_up_layer_address_info_to_rem_list_l transport_up_layer_address_info_to_rem_list;
21832
21833 // sequence methods
21834 SRSASN_CODE pack(bit_ref& bref) const;
21835 SRSASN_CODE unpack(cbit_ref& bref);
21836 void to_json(json_writer& j) const;
21837};
21838
21840
21841// UAC-Assistance-Info ::= SEQUENCE
21843 bool ie_exts_present = false;
21844 uac_plmn_list_l uac_plmn_list;
21846
21847 // sequence methods
21848 SRSASN_CODE pack(bit_ref& bref) const;
21849 SRSASN_CODE unpack(cbit_ref& bref);
21850 void to_json(json_writer& j) const;
21851};
21852
21853// UEPagingCapability ::= SEQUENCE
21856 enum options { supported, /*...*/ nulltype } value;
21857
21858 const char* to_string() const;
21859 };
21861
21862 // member variables
21863 bool ext = false;
21864 bool inactive_state_po_determination_present = false;
21865 inactive_state_po_determination_e_ inactive_state_po_determination;
21867 // ...
21868
21869 // sequence methods
21870 SRSASN_CODE pack(bit_ref& bref) const;
21871 SRSASN_CODE unpack(cbit_ref& bref);
21872 void to_json(json_writer& j) const;
21873};
21874
21876
21877// UEReportingInformation ::= SEQUENCE
21880 enum options { ma0, ma1, ma2, ma4, ma8, ma16, ma32, ma64, nulltype } value;
21881 typedef uint8_t number_type;
21882
21883 const char* to_string() const;
21884 uint8_t to_number() const;
21885 };
21888 enum options { none, one, two, four, eight, ten, sixteen, twenty, thirty_two, sixty_four, /*...*/ nulltype } value;
21889
21890 const char* to_string() const;
21891 };
21893
21894 // member variables
21895 bool ext = false;
21896 bool ie_exts_present = false;
21897 report_amount_e_ report_amount;
21898 report_interv_e_ report_interv;
21900 // ...
21901
21902 // sequence methods
21903 SRSASN_CODE pack(bit_ref& bref) const;
21904 SRSASN_CODE unpack(cbit_ref& bref);
21905 void to_json(json_writer& j) const;
21906};
21907
21909
21910// UL-BH-Non-UP-Traffic-Mapping ::= SEQUENCE
21912 bool ie_exts_present = false;
21913 ul_bh_non_up_traffic_map_list_l ul_bh_non_up_traffic_map_list;
21915
21916 // sequence methods
21917 SRSASN_CODE pack(bit_ref& bref) const;
21918 SRSASN_CODE unpack(cbit_ref& bref);
21919 void to_json(json_writer& j) const;
21920};
21921
21922// UuRLCChannelFailedToBeModifiedList ::= SEQUENCE (SIZE (1..32)) OF UuRLCChannelFailedToBeModifiedItem
21924
21925// UuRLCChannelFailedToBeSetupList ::= SEQUENCE (SIZE (1..32)) OF UuRLCChannelFailedToBeSetupItem
21927
21928// UuRLCChannelModifiedList ::= SEQUENCE (SIZE (1..32)) OF UuRLCChannelModifiedItem
21930
21931// UuRLCChannelRequiredToBeModifiedList ::= SEQUENCE (SIZE (1..32)) OF UuRLCChannelRequiredToBeModifiedItem
21933
21934// UuRLCChannelRequiredToBeReleasedList ::= SEQUENCE (SIZE (1..32)) OF UuRLCChannelRequiredToBeReleasedItem
21936
21937// UuRLCChannelSetupList ::= SEQUENCE (SIZE (1..32)) OF UuRLCChannelSetupItem
21939
21940// UuRLCChannelToBeModifiedList ::= SEQUENCE (SIZE (1..32)) OF UuRLCChannelToBeModifiedItem
21942
21943// UuRLCChannelToBeReleasedList ::= SEQUENCE (SIZE (1..32)) OF UuRLCChannelToBeReleasedItem
21945
21946// UuRLCChannelToBeSetupList ::= SEQUENCE (SIZE (1..32)) OF UuRLCChannelToBeSetupItem
21948
21949} // namespace f1ap
21950} // namespace asn1
21951
Definition asn1_utils.h:1208
Definition asn1_utils.h:934
Definition asn1_utils.h:729
Definition asn1_utils.h:1493
Definition asn1_utils.h:863
Definition asn1_utils.h:152
Definition asn1_utils.h:171
Definition asn1_utils.h:1381
Definition asn1_utils.h:1179
Definition f1ap_ies.h:220
Definition f1ap_ies.h:219
Definition f1ap_ies.h:343
Definition f1ap_ies.h:20630
Definition f1ap_ies.h:2524
Definition f1ap_ies.h:2515
Definition f1ap_ies.h:15146
Definition f1ap_ies.h:3073
Definition f1ap_ies.h:3243
Definition f1ap_ies.h:2754
Definition f1ap_ies.h:3265
Definition f1ap_ies.h:3285
Definition f1ap_ies.h:3330
Definition f1ap_ies.h:3350
Definition f1ap_ies.h:3383
Definition f1ap_ies.h:3424
Definition f1ap_ies.h:2907
Definition f1ap_ies.h:3532
Definition f1ap_ies.h:3599
Definition f1ap_ies.h:7459
Definition f1ap_ies.h:198
Definition f1ap_ies.h:132
Definition f1ap_ies.h:3640
Definition f1ap_ies.h:3657
Definition f1ap_ies.h:5090
Definition f1ap_ies.h:2586
Definition f1ap_ies.h:10169
Definition f1ap_ies.h:4565
Definition f1ap_ies.h:4599
Definition f1ap_ies.h:4616
Definition f1ap_ies.h:5230
Definition f1ap_ies.h:2601
Definition f1ap_ies.h:2599
Definition f1ap_ies.h:2639
Definition f1ap_ies.h:5102
Definition f1ap_ies.h:5101
Definition f1ap_ies.h:5276
Definition f1ap_ies.h:5522
Definition f1ap_ies.h:5694
Definition f1ap_ies.h:5636
Definition f1ap_ies.h:5569
Definition f1ap_ies.h:5568
Definition f1ap_ies.h:6672
Definition f1ap_ies.h:6712
Definition f1ap_ies.h:4300
Definition f1ap_ies.h:4299
Definition f1ap_ies.h:4198
Definition f1ap_ies.h:4214
Definition f1ap_ies.h:4232
Definition f1ap_ies.h:4284
Definition f1ap_ies.h:6230
Definition f1ap_ies.h:6220
Definition f1ap_ies.h:7715
Definition f1ap_ies.h:14246
Definition f1ap_ies.h:7085
Definition f1ap_ies.h:7198
Definition f1ap_ies.h:7173
Definition f1ap_ies.h:7211
Definition f1ap_ies.h:15991
Definition f1ap_ies.h:8316
Definition f1ap_ies.h:7326
Definition f1ap_ies.h:7755
Definition f1ap_ies.h:5384
Definition f1ap_ies.h:10177
Definition f1ap_ies.h:10578
Definition f1ap_ies.h:20638
Definition f1ap_ies.h:20646
Definition f1ap_ies.h:6251
Definition f1ap_ies.h:8708
Definition f1ap_ies.h:8782
Definition f1ap_ies.h:8528
Definition f1ap_ies.h:6269
Definition f1ap_ies.h:8869
Definition f1ap_ies.h:8893
Definition f1ap_ies.h:6431
Definition f1ap_ies.h:6444
Definition f1ap_ies.h:4141
Definition f1ap_ies.h:4173
Definition f1ap_ies.h:6488
Definition f1ap_ies.h:6472
Definition f1ap_ies.h:6538
Definition f1ap_ies.h:6651
Definition f1ap_ies.h:20662
Definition f1ap_ies.h:10185
Definition f1ap_ies.h:8930
Definition f1ap_ies.h:9038
Definition f1ap_ies.h:9197
Definition f1ap_ies.h:9237
Definition f1ap_ies.h:9254
Definition f1ap_ies.h:9218
Definition f1ap_ies.h:8912
Definition f1ap_ies.h:9391
Definition f1ap_ies.h:9378
Definition f1ap_ies.h:9563
Definition f1ap_ies.h:9579
Definition f1ap_ies.h:9621
Definition f1ap_ies.h:9895
Definition f1ap_ies.h:9780
Definition f1ap_ies.h:9992
Definition f1ap_ies.h:10043
Definition f1ap_ies.h:10111
Definition f1ap_ies.h:10442
Definition f1ap_ies.h:10466
Definition f1ap_ies.h:10557
Definition f1ap_ies.h:10664
Definition f1ap_ies.h:20670
Definition f1ap_ies.h:10759
Definition f1ap_ies.h:10799
Definition f1ap_ies.h:10782
Definition f1ap_ies.h:814
Definition f1ap_ies.h:1001
Definition f1ap_ies.h:8334
Definition f1ap_ies.h:8366
Definition f1ap_ies.h:8342
Definition f1ap_ies.h:8374
Definition f1ap_ies.h:10873
Definition f1ap_ies.h:11023
Definition f1ap_ies.h:8350
Definition f1ap_ies.h:8382
Definition f1ap_ies.h:8358
Definition f1ap_ies.h:8390
Definition f1ap_ies.h:10193
Definition f1ap_ies.h:16001
Definition f1ap_ies.h:10128
Definition f1ap_ies.h:4723
Definition f1ap_ies.h:11064
Definition f1ap_ies.h:11646
Definition f1ap_ies.h:2563
Definition f1ap_ies.h:12038
Definition f1ap_ies.h:11738
Definition f1ap_ies.h:11836
Definition f1ap_ies.h:11819
Definition f1ap_ies.h:11757
Definition f1ap_ies.h:11765
Definition f1ap_ies.h:11891
Definition f1ap_ies.h:11928
Definition f1ap_ies.h:11994
Definition f1ap_ies.h:11807
Definition f1ap_ies.h:11791
Definition f1ap_ies.h:11914
Definition f1ap_ies.h:11726
Definition f1ap_ies.h:4834
Definition f1ap_ies.h:4832
Definition f1ap_ies.h:5033
Definition f1ap_ies.h:19392
Definition f1ap_ies.h:9271
Definition f1ap_ies.h:3457
Definition f1ap_ies.h:3500
Definition f1ap_ies.h:3477
Definition f1ap_ies.h:3518
Definition f1ap_ies.h:646
Definition f1ap_ies.h:12059
Definition f1ap_ies.h:12081
Definition f1ap_ies.h:12278
Definition f1ap_ies.h:20696
Definition f1ap_ies.h:20680
Definition f1ap_ies.h:19400
Definition f1ap_ies.h:19408
Definition f1ap_ies.h:14253
Definition f1ap_ies.h:13478
Definition f1ap_ies.h:13476
Definition f1ap_ies.h:8082
Definition f1ap_ies.h:14266
Definition f1ap_ies.h:20712
Definition f1ap_ies.h:9534
Definition f1ap_ies.h:5548
Definition f1ap_ies.h:5558
Definition f1ap_ies.h:877
Definition f1ap_ies.h:7944
Definition f1ap_ies.h:7852
Definition f1ap_ies.h:8018
Definition f1ap_ies.h:538
Definition f1ap_ies.h:20735
Definition f1ap_ies.h:4753
Definition f1ap_ies.h:4864
Definition f1ap_ies.h:4886
Definition f1ap_ies.h:11631
Definition f1ap_ies.h:7523
Definition f1ap_ies.h:7587
Definition f1ap_ies.h:1102
Definition f1ap_ies.h:20743
Definition f1ap_ies.h:20751
Definition f1ap_ies.h:17437
Definition f1ap_ies.h:15159
Definition f1ap_ies.h:16078
Definition f1ap_ies.h:13553
Definition f1ap_ies.h:14311
Definition f1ap_ies.h:15208
Definition f1ap_ies.h:2654
Definition f1ap_ies.h:403
Definition f1ap_ies.h:411
Definition f1ap_ies.h:1059
Definition f1ap_ies.h:419
Definition f1ap_ies.h:20764
Definition f1ap_ies.h:900
Definition f1ap_ies.h:20878
Definition f1ap_ies.h:7707
Definition f1ap_ies.h:17490
Definition f1ap_ies.h:20803
Definition f1ap_ies.h:7605
Definition f1ap_ies.h:14329
Definition f1ap_ies.h:20815
Definition f1ap_ies.h:8455
Definition f1ap_ies.h:7469
Definition f1ap_ies.h:7560
Definition f1ap_ies.h:3749
Definition f1ap_ies.h:17583
Definition f1ap_ies.h:16162
Definition f1ap_ies.h:16170
Definition f1ap_ies.h:685
Definition f1ap_ies.h:13097
Definition f1ap_ies.h:10849
Definition f1ap_ies.h:3871
Definition f1ap_ies.h:7794
Definition f1ap_ies.h:7894
Definition f1ap_ies.h:7893
Definition f1ap_ies.h:7824
Definition f1ap_ies.h:7921
Definition f1ap_ies.h:15226
Definition f1ap_ies.h:12706
Definition f1ap_ies.h:2775
Definition f1ap_ies.h:14344
Definition f1ap_ies.h:46
Definition f1ap_ies.h:10688
Definition f1ap_ies.h:20930
Definition f1ap_ies.h:16178
Definition f1ap_ies.h:15244
Definition f1ap_ies.h:15242
Definition f1ap_ies.h:16186
Definition f1ap_ies.h:14405
Definition f1ap_ies.h:15276
Definition f1ap_ies.h:15296
Definition f1ap_ies.h:15294
Definition f1ap_ies.h:16200
Definition f1ap_ies.h:14415
Definition f1ap_ies.h:15328
Definition f1ap_ies.h:15365
Definition f1ap_ies.h:15363
Definition f1ap_ies.h:16214
Definition f1ap_ies.h:14425
Definition f1ap_ies.h:5887
Definition f1ap_ies.h:5904
Definition f1ap_ies.h:5953
Definition f1ap_ies.h:5968
Definition f1ap_ies.h:5812
Definition f1ap_ies.h:6144
Definition f1ap_ies.h:4425
Definition f1ap_ies.h:17600
Definition f1ap_ies.h:16239
Definition f1ap_ies.h:17614
Definition f1ap_ies.h:20986
Definition f1ap_ies.h:20994
Definition f1ap_ies.h:15489
Definition f1ap_ies.h:11668
Definition f1ap_ies.h:21023
Definition f1ap_ies.h:15400
Definition f1ap_ies.h:6832
Definition f1ap_ies.h:16250
Definition f1ap_ies.h:17766
Definition f1ap_ies.h:2841
Definition f1ap_ies.h:2973
Definition f1ap_ies.h:8482
Definition f1ap_ies.h:430
Definition f1ap_ies.h:438
Definition f1ap_ies.h:490
Definition f1ap_ies.h:446
Definition f1ap_ies.h:21109
Definition f1ap_ies.h:17887
Definition f1ap_ies.h:16371
Definition f1ap_ies.h:16381
Definition f1ap_ies.h:4803
Definition f1ap_ies.h:13679
Definition f1ap_ies.h:16358
Definition f1ap_ies.h:9613
Definition f1ap_ies.h:9553
Definition f1ap_ies.h:17906
Definition f1ap_ies.h:5406
Definition f1ap_ies.h:5367
Definition f1ap_ies.h:12169
Definition f1ap_ies.h:509
Definition f1ap_ies.h:385
Definition f1ap_ies.h:917
Definition f1ap_ies.h:1067
Definition f1ap_ies.h:15507
Definition f1ap_ies.h:15506
Definition f1ap_ies.h:14477
Definition f1ap_ies.h:8131
Definition f1ap_ies.h:555
Definition f1ap_ies.h:19549
Definition f1ap_ies.h:21038
Definition f1ap_ies.h:8038
Definition f1ap_ies.h:8194
Definition f1ap_ies.h:12728
Definition f1ap_ies.h:13157
Definition f1ap_ies.h:21070
Definition f1ap_ies.h:457
Definition f1ap_ies.h:13173
Definition f1ap_ies.h:13172
Definition f1ap_ies.h:6853
Definition f1ap_ies.h:21094
Definition f1ap_ies.h:12154
Definition f1ap_ies.h:12302
Definition f1ap_ies.h:12405
Definition f1ap_ies.h:13203
Definition f1ap_ies.h:3407
Definition f1ap_ies.h:21254
Definition f1ap_ies.h:16540
Definition f1ap_ies.h:18099
Definition f1ap_ies.h:16577
Definition f1ap_ies.h:21263
Definition f1ap_ies.h:21262
Definition f1ap_ies.h:21323
Definition f1ap_ies.h:21333
Definition f1ap_ies.h:5680
Definition f1ap_ies.h:21357
Definition f1ap_ies.h:21356
Definition f1ap_ies.h:16589
Definition f1ap_ies.h:15608
Definition f1ap_ies.h:14575
Definition f1ap_ies.h:14509
Definition f1ap_ies.h:15569
Definition f1ap_ies.h:19723
Definition f1ap_ies.h:17930
Definition f1ap_ies.h:19777
Definition f1ap_ies.h:21147
Definition f1ap_ies.h:18033
Definition f1ap_ies.h:21176
Definition f1ap_ies.h:18019
Definition f1ap_ies.h:16397
Definition f1ap_ies.h:21188
Definition f1ap_ies.h:10201
Definition f1ap_ies.h:21198
Definition f1ap_ies.h:20012
Definition f1ap_ies.h:15671
Definition f1ap_ies.h:14635
Definition f1ap_ies.h:611
Definition f1ap_ies.h:21382
Definition f1ap_ies.h:21390
Definition f1ap_ies.h:21413
Definition f1ap_ies.h:21400
Definition f1ap_ies.h:20025
Definition f1ap_ies.h:16618
Definition f1ap_ies.h:20039
Definition f1ap_ies.h:18149
Definition f1ap_ies.h:1426
Definition f1ap_ies.h:1807
Definition f1ap_ies.h:1440
Definition f1ap_ies.h:1462
Definition f1ap_ies.h:20053
Definition f1ap_ies.h:13236
Definition f1ap_ies.h:2349
Definition f1ap_ies.h:2389
Definition f1ap_ies.h:18162
Definition f1ap_ies.h:1406
Definition f1ap_ies.h:3365
Definition f1ap_ies.h:10155
Definition f1ap_ies.h:7190
Definition f1ap_ies.h:18178
Definition f1ap_ies.h:12417
Definition f1ap_ies.h:21213
Definition f1ap_ies.h:13705
Definition f1ap_ies.h:19896
Definition f1ap_ies.h:12521
Definition f1ap_ies.h:12546
Definition f1ap_ies.h:12743
Definition f1ap_ies.h:12560
Definition f1ap_ies.h:12440
Definition f1ap_ies.h:12373
Definition f1ap_ies.h:12389
Definition f1ap_ies.h:12903
Definition f1ap_ies.h:16470
Definition f1ap_ies.h:16469
Definition f1ap_ies.h:18053
Definition f1ap_ies.h:14595
Definition f1ap_ies.h:19954
Definition f1ap_ies.h:19934
Definition f1ap_ies.h:18072
Definition f1ap_ies.h:19969
Definition f1ap_ies.h:21239
Definition f1ap_ies.h:18193
Definition f1ap_ies.h:21445
Definition f1ap_ies.h:16646
Definition f1ap_ies.h:4919
Definition f1ap_ies.h:5065
Definition f1ap_ies.h:9458
Definition f1ap_ies.h:10347
Definition f1ap_ies.h:10346
Definition f1ap_ies.h:10213
Definition f1ap_ies.h:10211
Definition f1ap_ies.h:4824
Definition f1ap_ies.h:281
Definition f1ap_ies.h:20073
Definition f1ap_ies.h:9279
Definition f1ap_ies.h:957
Definition f1ap_ies.h:719
Definition f1ap_ies.h:4054
Definition f1ap_ies.h:18209
Definition f1ap_ies.h:9701
Definition f1ap_ies.h:11292
Definition f1ap_ies.h:11291
Definition f1ap_ies.h:13249
Definition f1ap_ies.h:13248
Definition f1ap_ies.h:21505
Definition f1ap_ies.h:3110
Definition f1ap_ies.h:21513
Definition f1ap_ies.h:21525
Definition f1ap_ies.h:21539
Definition f1ap_ies.h:13741
Definition f1ap_ies.h:1487
Definition f1ap_ies.h:1893
Definition f1ap_ies.h:1892
Definition f1ap_ies.h:1502
Definition f1ap_ies.h:1571
Definition f1ap_ies.h:1549
Definition f1ap_ies.h:1969
Definition f1ap_ies.h:1968
Definition f1ap_ies.h:1630
Definition f1ap_ies.h:1585
Definition f1ap_ies.h:2045
Definition f1ap_ies.h:2044
Definition f1ap_ies.h:1686
Definition f1ap_ies.h:21593
Definition f1ap_ies.h:21592
Definition f1ap_ies.h:6462
Definition f1ap_ies.h:10245
Definition f1ap_ies.h:10141
Definition f1ap_ies.h:21459
Definition f1ap_ies.h:5173
Definition f1ap_ies.h:9711
Definition f1ap_ies.h:299
Definition f1ap_ies.h:7046
Definition f1ap_ies.h:6959
Definition f1ap_ies.h:6957
Definition f1ap_ies.h:7059
Definition f1ap_ies.h:21484
Definition f1ap_ies.h:21497
Definition f1ap_ies.h:20090
Definition f1ap_ies.h:20088
Definition f1ap_ies.h:21471
Definition f1ap_ies.h:13014
Definition f1ap_ies.h:13031
Definition f1ap_ies.h:18271
Definition f1ap_ies.h:18307
Definition f1ap_ies.h:18321
Definition f1ap_ies.h:18337
Definition f1ap_ies.h:21615
Definition f1ap_ies.h:21623
Definition f1ap_ies.h:21631
Definition f1ap_ies.h:15813
Definition f1ap_ies.h:21649
Definition f1ap_ies.h:18355
Definition f1ap_ies.h:16747
Definition f1ap_ies.h:21672
Definition f1ap_ies.h:21671
Definition f1ap_ies.h:21639
Definition f1ap_ies.h:18848
Definition f1ap_ies.h:15840
Definition f1ap_ies.h:17079
Definition f1ap_ies.h:18863
Definition f1ap_ies.h:12021
Definition f1ap_ies.h:13866
Definition f1ap_ies.h:14725
Definition f1ap_ies.h:7284
Definition f1ap_ies.h:7300
Definition f1ap_ies.h:18919
Definition f1ap_ies.h:20225
Definition f1ap_ies.h:14682
Definition f1ap_ies.h:10721
Definition f1ap_ies.h:7572
Definition f1ap_ies.h:20191
Definition f1ap_ies.h:16808
Definition f1ap_ies.h:18435
Definition f1ap_ies.h:18421
Definition f1ap_ies.h:18477
Definition f1ap_ies.h:18491
Definition f1ap_ies.h:18537
Definition f1ap_ies.h:16860
Definition f1ap_ies.h:20205
Definition f1ap_ies.h:16868
Definition f1ap_ies.h:18572
Definition f1ap_ies.h:18571
Definition f1ap_ies.h:7073
Definition f1ap_ies.h:6777
Definition f1ap_ies.h:6910
Definition f1ap_ies.h:12131
Definition f1ap_ies.h:7149
Definition f1ap_ies.h:12816
Definition f1ap_ies.h:7112
Definition f1ap_ies.h:6730
Definition f1ap_ies.h:6162
Definition f1ap_ies.h:13915
Definition f1ap_ies.h:17115
Definition f1ap_ies.h:2129
Definition f1ap_ies.h:18670
Definition f1ap_ies.h:18703
Definition f1ap_ies.h:18720
Definition f1ap_ies.h:18737
Definition f1ap_ies.h:18765
Definition f1ap_ies.h:18795
Definition f1ap_ies.h:18813
Definition f1ap_ies.h:2498
Definition f1ap_ies.h:13345
Definition f1ap_ies.h:13357
Definition f1ap_ies.h:2405
Definition f1ap_ies.h:17006
Definition f1ap_ies.h:18829
Definition f1ap_ies.h:2464
Definition f1ap_ies.h:3623
Definition f1ap_ies.h:13759
Definition f1ap_ies.h:13822
Definition f1ap_ies.h:13820
Definition f1ap_ies.h:14696
Definition f1ap_ies.h:6871
Definition f1ap_ies.h:8846
Definition f1ap_ies.h:13049
Definition f1ap_ies.h:13854
Definition f1ap_ies.h:8214
Definition f1ap_ies.h:1784
Definition f1ap_ies.h:7366
Definition f1ap_ies.h:12772
Definition f1ap_ies.h:7135
Definition f1ap_ies.h:7377
Definition f1ap_ies.h:7376
Definition f1ap_ies.h:7449
Definition f1ap_ies.h:14761
Definition f1ap_ies.h:768
Definition f1ap_ies.h:21713
Definition f1ap_ies.h:731
Definition f1ap_ies.h:729
Definition f1ap_ies.h:983
Definition f1ap_ies.h:12614
Definition f1ap_ies.h:8770
Definition f1ap_ies.h:14780
Definition f1ap_ies.h:13951
Definition f1ap_ies.h:13949
Definition f1ap_ies.h:8113
Definition f1ap_ies.h:14795
Definition f1ap_ies.h:21776
Definition f1ap_ies.h:15955
Definition f1ap_ies.h:14958
Definition f1ap_ies.h:4384
Definition f1ap_ies.h:12675
Definition f1ap_ies.h:2944
Definition f1ap_ies.h:17127
Definition f1ap_ies.h:21747
Definition f1ap_ies.h:20356
Definition f1ap_ies.h:21802
Definition f1ap_ies.h:20393
Definition f1ap_ies.h:4062
Definition f1ap_ies.h:4163
Definition f1ap_ies.h:13384
Definition f1ap_ies.h:8550
Definition f1ap_ies.h:19018
Definition f1ap_ies.h:17137
Definition f1ap_ies.h:19030
Definition f1ap_ies.h:14810
Definition f1ap_ies.h:20341
Definition f1ap_ies.h:2993
Definition f1ap_ies.h:3219
Definition f1ap_ies.h:20277
Definition f1ap_ies.h:18976
Definition f1ap_ies.h:20303
Definition f1ap_ies.h:11505
Definition f1ap_ies.h:11519
Definition f1ap_ies.h:20321
Definition f1ap_ies.h:11436
Definition f1ap_ies.h:12831
Definition f1ap_ies.h:12848
Definition f1ap_ies.h:12865
Definition f1ap_ies.h:13462
Definition f1ap_ies.h:13399
Definition f1ap_ies.h:13398
Definition f1ap_ies.h:13070
Definition f1ap_ies.h:9407
Definition f1ap_ies.h:9441
Definition f1ap_ies.h:10857
Definition f1ap_ies.h:10865
Definition f1ap_ies.h:21817
Definition f1ap_ies.h:796
Definition f1ap_ies.h:2191
Definition f1ap_ies.h:2195
Definition f1ap_ies.h:2199
Definition f1ap_ies.h:2190
Definition f1ap_ies.h:2262
Definition f1ap_ies.h:2266
Definition f1ap_ies.h:2270
Definition f1ap_ies.h:2274
Definition f1ap_ies.h:2261
Definition f1ap_ies.h:10259
Definition f1ap_ies.h:4131
Definition f1ap_ies.h:14066
Definition f1ap_ies.h:21842
Definition f1ap_ies.h:15043
Definition f1ap_ies.h:14086
Definition f1ap_ies.h:17159
Definition f1ap_ies.h:19086
Definition f1ap_ies.h:15972
Definition f1ap_ies.h:17297
Definition f1ap_ies.h:19231
Definition f1ap_ies.h:20427
Definition f1ap_ies.h:21854
Definition f1ap_ies.h:21878
Definition f1ap_ies.h:2802
Definition f1ap_ies.h:21911
Definition f1ap_ies.h:10398
Definition f1ap_ies.h:14099
Definition f1ap_ies.h:14136
Definition f1ap_ies.h:15119
Definition f1ap_ies.h:3059
Definition f1ap_ies.h:10270
Definition f1ap_ies.h:2704
Definition f1ap_ies.h:20506
Definition f1ap_ies.h:19305
Definition f1ap_ies.h:20554
Definition f1ap_ies.h:20606
Definition f1ap_ies.h:20622
Definition f1ap_ies.h:15134
Definition f1ap_ies.h:2822
Empty Protocol Extension Object Set.
Definition asn1_ap_utils.h:280
Definition asn1_ap_utils.h:117
Empty ProtocolExtensionContainer.
Definition asn1_ap_utils.h:288
Definition asn1_ap_utils.h:112
Empty Protocol IE Object Set.
Definition asn1_ap_utils.h:272